美文网首页
Swift流程控制

Swift流程控制

作者: Rathen | 来源:发表于2019-10-08 17:07 被阅读0次
    for-in 循环
    • 使用 for-in 循环来遍历序列,比如一个范围的数字,数组中的元素或者字符串中的字符。
    • 如果你不需要序列的每一个值,你可以使用下划线来取代遍历名以忽略值。
    for i in 0...3 {
        print(i)
    }
    
    for c in "hello,world" {
        print(c)
    }
    
    for-in 遍历字典
    • 当字典遍历时,每一个元素都返回一个 (key, value) 元组,你可以在 for-in 循环体中使用显 式命名常量来分解 (key, value) 元组成员。
    let numberLogs = ["qwrr":6, "asdf":3, "zxcvb":8]
    for (name, number) in numberLogs {
        print("name == \(name), number == \(number)")
    }
    
    for-in 分段区间
    • 使用 stride(from:to:by:) 函数来跳过不想要的标记 (开区间)。
    • 闭区间也同样适用,使用 stride(from:through:by:) 即可。
    //to 改成through  包含80
    let  middleNumber = 5
    for i in stride(from: 0, to: 80, by: middleNumber) {
        print(i) //0,5,10,15,20,25.....
    }
    
    while 循环

    repeat-while 循环 (Objective-C do-while)

    switch

    • switch 语句会将一个值与多个可能的模式匹配。然后基于第一个成功匹配的模式来执行合适的 代码块。
    • switch 语句一定得是全面的。就是说,给定类型里每一个值都得被考虑到并且匹配到一个 switch 的 case。如果无法提供一个 switch case 所有可能的值,你可以定义一个默认匹配所有 的 case 来匹配所有未明确出来的值。这个匹配所有的情况用关键字 default 标记,并且必须在 所有 case 的最后出现。
    • Objective-C switch 语句如果不全面,仍然可以运行。
    • 相比 C 和 Objective-C 里的 switch 语句来说,Swift 里的 switch 语句不会默认从匹配 case 的末尾贯穿到下一个 case 里。
    • 相反,整个 switch 语句会在匹配到第一个 switch 的 case 执行完毕之后退出,不再需要显式 的 break 语句。
    • 每一个 case 的函数体必须包含至少一个可执行的语句。
    • 在一个 switch 的 case 中匹配多个值可以用逗号分隔,并且可以写成多行

    guard 和检查 API 可用性

    • guard 语句,类似于 if 语句,基于布尔值表达式来执行语句。使用 guard 语句来要求一个条 件必须是真才能执行 guard 之后的语句。与 if 语句不同,guard 语句总是有一个 else 分句 —— else 分句里的代码会在条件不为真的时候执行。
    • Swift 拥有内置的对 API 可用性的检查功能,它能够确保你不会悲剧地使用了对部属目标不可 用的 API。
    • 你可以在 if 或者 guard 语句中使用一个可用性条件来有条件地执行代码,基于在运行时你想 用的哪个 API 是可用的。

    相关文章

      网友评论

          本文标题:Swift流程控制

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