序言:在使用Swift正常开发过程中遇到很多"可有可无",相对用得少的语法说明,再次记录一下。
-
@discardableResult
swift正常的方法如果有返回值的话,调用的时候必须有一个接收方,否则的话编译器会报一个警告,如果在"方法前"加上 @discardableResult 不处理的时候就不会有警告了。也可以用一个通配符接收方法返回值,可以达到同样的目的( i.e.: "_ = funcName()" )。
-
mutating
structure和enumeration也可以拥有方法(method),虽然结构体和枚举可以定义自己的方法,但是默认情况下,实例方法中是不可以修改值类型的属性。使用 mutating 关键字修饰方法是为了能在该方法中修改 structure 或是 enumeration 的变量,在设计接口的时候,也要考虑到使用者程序的扩展性。所以要多考虑使用mutating来修饰方法。(e.g.: mutating func doSomething())
-
...(options: UIViewAnimationOptions = [])...
很多api都有形如options这样标签的参数,而且参数的默认值是“[ ]”(空数组),
-
internal(set)/private(set)
常量、变量、属性、下标索引的Getters和Setters的访问级别继承自它们所属成员的访问级别。Setter的访问级别可以低于对应的Getter的访问级别,这样就可以控制变量、属性或下标索引的读写权限。在var或subscript定义作用域之前,你可以通过private(set)或internal(set)先为它门的写权限申明一个较低的访问级别。
注意:这个规定适用于用作存储的属性或用作计算的属性。即使你不明确的申明存储属性的Getter、Setter,Swift也会隐式的为其创建Getter和Setter,用于对该属性进行读取操作。使用private(set)和internal(set)可以改变Swift隐式创建的Setter的访问级别。在计算属性中也是同样的。
网友评论