Swift一些小特性

1.元组

太多了。。。不贴了,请自行查阅swift4,emmm很随意的一种类型。。。。

2.可选类型

值可能不存在的情况下,你可以使用可选类型。 一个可选类型代表两种可能性:要么它有值(你可以通过解包来访问该值), 或者没有值。

Note: 在C或Objective-C中不存在可选类型的概念。 在OC中和可选类型这个概念最类似的是: 一个对象要么返回确定的值要么返回nil,其中nil表示“对象不存在”。然而这种方法仅适用于对象,并不适用于结构体、C的基本类型以及枚举。 对于这些类型,OC方法通常返回一个特殊值(例如NSNotFound)来表示没有值。 这种机制假设了方法调用者知道存在一个特殊的值,而且会通过这个值来检测方法的结果。Swift 的可选类型可以让你表示任意类型的值缺失,并不需要特殊值。

let possibleNumber = "123"

​ let convertedNumber = Int(possibleNumber)
​ // convertedNumber被转换为类型"Int?",即"可选类型Int"
因为初始化方法可能会失败,所以它返回的是一个可选类型Int,而不是Int。 一个可选类型Int我们用Int?表示,而不是Int。 问号表示这个Int它包含的值是可选的,这意味着它可能包含一些具体的Int值,或者它可能不包含任何值。 (它不能包含任何其他值,例如Bool值或String值,它要么就是一个Int,要么它根本就没有值)

3.nil

通过赋值nil,你可以将一个可选类型设置为无值状态:

var serverResponseCode:Int? = 404
// serverResponseCode包含一个具体的Int值,即404
serverResponseCode = nil
// serverResponseCode现在不包含任何值

NOTE: nil不能和非可选类型的常量和变量一起使用。 如果你的代码中的常量或变量在某些情况下需要以没有值的状态运行,那你应该始终将其声明为可选类型。
如果你定义了一个可选类型的变量, 但是不设置默认值,那么该变量的值将自动设置为nil:

var surveyAnswer:String?
// surveyAnswer自动设置为nil

NOTE: Swift中的nil不同于OC中的nil。 在OC中,nil 是一个指向不存在的对象的指针。 在Swift中,nil不是指针, 它是一个不存在值的特定类型的。 任何数据类型的可选类型都可以设置为 nil,而不仅仅是对象类型。

4.字符串值类型(Strings Are Value Types)

Swift的String类型是一个值类型。 如果我们创建一个新的String,该字符串在传递给函数或方法时将会被复制,或者当它被分配给常量或变量时也会被复制。 在所有的情况下,将创建现有String的新副本,并且新副本将被传递或分配,而不是原始版本

tip.问题

【1】类型检查,强制转换写的我想吐

【2】局部变量和类属性

class xxx: NSObject{
    static let width = 100  类属性
    let width = 100  实例属性
}

【3】属性的set/get方法,需要注意下

【4】约束布局:新手练习使用Anchor代码布局,高手可以使用SnapKit,后期需要学习

你可能感兴趣的:(Swift一些小特性)