美文网首页
Swift 语句

Swift 语句

作者: 小笨憨 | 来源:发表于2017-07-31 16:55 被阅读0次
    Repeat-While 语句

    repeat-while 语句至少执行一次代码块,之后只要循环条件为真,就会重复执行代码块。

    repeat-while 语句的形式如下:

    repeat {  
        语句  
    } while 条件
    

    repeat-while 语句的执行流程如下:

    执行循环体中的语句,然后转到第 2 步。
    判断条件的值。如果为 true,重复第 1 步;如果为 falserepeat-while 语句至此执行完毕。
    由于条件的值是在循环体中的语句执行后才进行判断,因此循环体中的语句至少会被执行一次。
    条件的结果必须是Bool类型或者Bool的桥接类型。另外,条件语句也可以使用可选绑定

    repeat-while 语句语法
    repeat-while 语句repeat 代码块 while 表达式

    Guard 语句
    如果一个或者多个条件不成立,可用 guard 语句用来退出当前作用域。

    guard 语句的格式如下:
    guard 条件 else {    
        语句    
    }
    

    guard 语句中条件的结果必须是Bool类型或者Bool的桥接类型。另外,条件也可以是一条可选绑定。

    在 guard 语句中进行可选绑定的常量或者变量,其可用范围从声明开始直到作用域结束。

    guard 语句必须有 else 子句,而且必须在该子句中调用 Never 返回类型的函数,或者使用下面的语句退出当前作用域:

    • return
    • break
    • continue
    • throw

    guard 语句语法
    guard 语句guard条件子句else 代码块

    Fallthrough 语句

    fallthrough语句用于在switch 语句中转移控制权。fallthrough 语句会把控制权从 switch 语句中的一个case转移到下一个case。这种控制权转移是无条件的,即使下一个 case 的模式与 switch 语句的控制表达式的值不匹配。

    fallthrough 语句可出现在 switch 语句中的任意case 中,但不能出现在最后一个 case 中。同时,fallthrough 语句也不能把控制权转移到使用了值绑定的case

    fallthrough 语句语法
    fallthrough 语句fallthrough

    Throw 语句
    throw 语句出现在抛出函数或者抛出方法体内,或者类型被 throws 关键字标记的闭包表达式体内。

    throw 语句使程序在当前作用域结束执行,并向外围作用域传播错误。抛出的错误会一直传递,直到被 do 语句的catch 子句处理掉。

    throw 语句由 throw 关键字紧跟一个表达式组成,如下所示:

    throw 表达式
    表达式的结果必须符合 ErrorType 协议。

    throw 语句语法
    throw 语句throw 表达式

    可用性条件
    可用性条件可作为 if,while,guard 语句的条件,可以在运行时基于特定的平台参数来查询 API 的可用性。

    可用性条件的形式如下:

    if #available(平台名称 版本, ..., *) {    
        如果 API 可用,则执行这部分语句    
    } else {    
        如果 API 不可用,则执行这部分语句
    }
    

    使用可用性条件来执行一个代码块时,取决于使用的 API 在运行时是否可用,编译器会根据可用性条件提供的信息来决定是否执行相应的代码块。

    可用性条件使用一系列逗号分隔的平台名称和版本。使用 iOS,OSX,以及 watchOS 等作为平台名称,并写上相应的版本号。

    • 参数是必须写的,用于处理未来的潜在平台。可用性条件确保了运行时的平台不低于条件中指定的平台版本时才执行代码块。

    与布尔类型的条件不同,不能用逻辑运算符 && 和 || 组合可用性条件。

    可用性条件语法
    可用性条件 → #available ()

    相关文章

      网友评论

          本文标题:Swift 语句

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