1、与声明有关的关键字:
let:常量
var:变量
class:类的声明
struct:结构体声明
enum:枚举的声明
override:重写某个方法,或者某个属性
final:可以防止类(class)被继承,还可以防止子类重写父类的属性、方法以及下标。
subscript:下标索引
mutating:修改struct中对应的属性值
static:静态变量和静态方法
lazy:懒加载,计算初始化值的属性
init:类的初始化(构造函数)
deinit:类的反初始化(析构函数)
convenience:遍历构造器
required:用required修饰init方法说明该方法是必须实现
is:用来判断类型
throw, do-catch:Swift错误信息处理
extension:扩展
protocol:协议
public:可以访问在一个模块内的任何实体
internal:系统默认,可以访问同一模块源文件中得任何实体,但不能从模块的外部去访问该源文件中得实体
private:限制实体时能在源文件内部使用,外部不能访问
operator:自定义操作符
typealias:别名
2、与语句有关的关键字:
break 、case 、continue 、default、do 、else 、for 、if 、in 、return 、switch、where 、while等
fallthrough语句:执行完当前case,继续执行下面的case。
defer语句:指定了一个代码块,这个代码块中的代码,会在所在的作用域结束后被调用。就是延缓推迟,相当于把操作放入栈中,后加入的先执行。
guard语句:guard语句判断其后的表达式布尔值为false时,才会执行之后代码块里的代码,如果为true,则跳过整个guard语句。
available检查语句:一些新特性特性或一些类无法在老版本的iOS中使用,所以在编码过程中经常会对iOS的版本做以判断。
do-while语句重命名:经典的do-while语句改名了,改为了repeat-while。
协议扩展语句:协议(Protocol)基本上类似一个接口,定义若干属性和方法,供类、结构体、枚举遵循和实现。在Swift 2.0中,可以对协议进行属性或者方法的扩展,和扩展类与结构体类似。
异常处理语句: Swift提供了try、try?、try!、catch、throw、throws关这六个关键字组成的异常控制处理机制。
3、表达式和类型关键字:
as、dynamicType(获取一个对象的类型)、false、is、nil、self、Self、super、true、_COLUMN_、_FILE_、_FUNCTION_、_LINE_
前缀表达式(Prefix Expressions)
后缀表达式(Postfix Expressions)
主要表达式(Primary Expressions)
赋值表达式(Assignment Operator)
二元表达式(Binary Expressions)
三元条件运算符(Ternary Conditional Operator)
4、在特定上下文中使用的关键字:
associativity:运算符的结合性
convenience:遍历构造器
designed:构造链
dynamic:告诉编译器不要为属性合成getter和setter方法。
willSet:在set新值成功前发生
didSet:在设置新值成功后发生
final:不允许对其修饰的内容进行继承或者重新操作
set:当调用set方法的时候,系统会有一个newValue,将newVaule赋值给我们定义的变量
get:然后从get方法里面返回去
Swift语言中用了willSet和didSet这两个特性来监视属性的除初始化之外的属性值变化
infix:定义一个中位操作符
prefix:运算符在操作数前, 所以扫描从中缀表达式的右往左扫描
postfix:运算符在操作数后, 所以扫描从中缀表达式的左往右扫描
inout:输出参数
lazy:懒加载
Swift中,有两种方式来进行懒加载:
第一种,简单表达式
lazyvarfirst = NSArray(objects:"1","2")
第二种,闭包
lazyvarsecond:String= {
return"second"
}()
结合性(associativity)的值默认为none,可用left,right,none,优先级(precedence)默认为100。
left: 左
right: 右
none:无
mutating:能在该方法中修改struct或是enum的变量,在设计接口的时候,也要考虑到使用者程序的扩展性。所以要多考虑使用mutating来修饰方法。
nonmutating :告诉编译器不会修改实例内部的值,也就是set时,不会改变任何其他的变量。
optional:可选类型,既可以存储一个值,也可以为空
required:只能用于修饰类初始化方法。当子类含有异于父类的初始化方法时(初始化方法参数类型和数量异于父类),子类必须要实现父类的required初始化方法,并且也要使用required修饰符而不是override。当子类没有初始化方法时,可以不用实现父类的required初始化方法。
protocol:
1、Swift中类型通过遵守协议来实现一些约定的属性和方法。
2、协议中定义的属性只约定名称和类型,在具体类型的实现中,其可以是存储属性也可以是计算属性,协议中还需要指定属性是可读的还是可读可写的。
3、协议中虽然没有任何属性和方法的实现,但是其仍然可以当做类型来使用,在函数参数、返回值中应用广泛
precedence:运算的优先级
type: 类型
unowned:无宿主引用
weak:弱引用
网友评论