Swift关键字
- associatedtype: 协议-关联类型, 作用:为协议中的某个类型提供了一个占位名(或者说别名)
- inout: 输入输出参数,作用:修饰参数标签,是该参数在此函数体内,可修改。
- operator: 操作符,自定义操作符时,必带。
- class: 其中一个作用是:修饰类方法、类属性(类属性:只有在这个类第一次访问时,才被初始化,线程安全)。
- static:其中一个作用是:修饰类方法、类属性。结构体、枚举只能使用关键字static修饰
- struct: 声明结构体。
- subscript:下标。语法:subscript(index:type) ->returnType { get{} set{} }
- typealias: 起别名
- defer: 将代码的执行延迟到当前的作用域退出之前。注意:内部不能包含任何控制转移语句。(应用场景,打开时数据库,关闭数据库。获取图形上下文,关闭图形上下文)
- fallthrough: swich中贯穿
- guard: guard else{} 提前终止
- in: 闭包中作用:表示闭包的参数和返回值类型的定义已经完成,闭包函数体即将开始。
- repeat: repeat{}while 表达式; 相当于do{}while 表达式;
- where: 条件语句,where具体用途
- is: 能否向下转变
- as: 向上转变或桥接。(向超类转变)
- as?:返回可选值
- as! : 强制类型转变,转变失败,导致运行时错误。
- @IBDesignable dynamic,eg:open dynamic var textColor: UIColor;能在xib中显示设置项 TagListView
- associativity: 自定义操作符时,指定优先级。associativity
- final:防止重写
- Indirect:枚举递归
- self和Self
fileprivate func < <T : Comparable>(lhs: T?, rhs: T?) -> Bool {
switch (lhs, rhs) {
case let (l?, r?):
return l < r
case (nil, _?):
return true
default:
return false
}
}
fileprivate func >= <T : Comparable>(lhs: T?, rhs: T?) -> Bool {
switch (lhs, rhs) {
case let (l?, r?):
return l >= r
default:
return !(lhs < rhs)
}
}