美文网首页
Swift语言关键字

Swift语言关键字

作者: 野比大雄001 | 来源:发表于2017-05-04 14:22 被阅读51次

    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:弱引用

    相关文章

      网友评论

          本文标题:Swift语言关键字

          本文链接:https://www.haomeiwen.com/subject/wtartxtx.html