美文网首页
Swift Guard语句 提前退出

Swift Guard语句 提前退出

作者: json_jie | 来源:发表于2017-08-25 14:26 被阅读42次

像if语句一样,guard的执行取决于一个表达式的布尔值。我们可以使用guard语句来要求条件必须为真时,以执行guard语句后的代码。不同于if语句,一个guard语句总是有一个else从句,如果条件不为真则执行else从句中的代码。

func greet(person:[String:String]){
    guard  let name = person["name"] else {
        return
    }
    print("Hello \(name)")
    
    guard let location = person["location"] else {
        print("I hope the weather is  nice  near you")
        return
    }
    print("I hope the weather is nice in \(location)")
}
greet(person: ["name":"John"])
print("----------------------------------------------------------------------")
greet(person: ["name":"Jane","location":"Cupertion"])

Log

Hello John
I hope the weather is nice near you


Hello Jane
I hope the weather is nice in Cupertion

  1. 如果guard语句的条件被满足,则继续执行guard语句大括号后的代码。将变量或者常量的可选绑定作为guard语句的条件,都可以保护guard语句后面的代码。

  2. 如果条件不被满足,在else分支上的代码就会被执行。这个分支必须转移控制以退出guard语句出现的代码段。它可以用控制转移语句如return,break,continue或者throw做这件事,或者调用一个不返回的方法或函数,例如fatalError()。

  3. 相比于可以实现同样功能的if语句,按需使用guard语句会提升我们代码的可读性。它可以使你的代码连贯的被执行而不需要将它包在else块中,它可以使你在紧邻条件判断的地方,处理违规的情况

相关文章

  • Swift Guard语句 提前退出

    像if语句一样,guard的执行取决于一个表达式的布尔值。我们可以使用guard语句来要求条件必须为真时,以执行g...

  • 为什么Swift中应该避免使用guard语句

    为什么Swift中应该避免使用guard语句 为什么Swift中应该避免使用guard语句

  • swift语法 guard 提前退出

    像 if 语句一样,guard 的执行取决于一个表达式的布尔值。我们可以使用 guard 语句来要求条件必须为真时...

  • guard 和 if 的用法及区别

    一、guard是什么? guard是 swift 2.0推出的新的判断语句的用法。guard语句和if语句类似,都...

  • Swift guard

    guard是什么? guard是 swift 2.0推出的新的判断语句的用法。guard语句和if语句类似,都是根...

  • swift之guard用法

    guard是什么?1.guard是 swift 2.0推出的新的判断语句的用法。guard语句和if语句类似,都是...

  • Swift-控制流

    循环语句 for-in , whileif和循环控制语句早退语句 guard else(选修)退出循环语句 bre...

  • 控制流(Control Flow)

    swift里面的控制流分为For-In 循环、While 循环、 条件语句、控制转移语句、 提前退出、检测 API...

  • swift guard语句

    一、表现形式 二、特点 当guard语句的条件为false时,就会执行大括号里面的代码当guard语句的条件为tr...

  • Swift语句中 if 和 guard 的区别

    对于刚熟悉Swift的Coder来说, 很容易将 if 和 guard 的用法混淆. guard语句最大的优势就是...

网友评论

      本文标题:Swift Guard语句 提前退出

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