Swift语言关键字

2017-05-04  本文已影响51人  野比大雄001

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_

Swift 表达式:

前缀表达式(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:弱引用

上一篇下一篇

猜你喜欢

热点阅读