美文网首页
Swift-guard语句

Swift-guard语句

作者: Joker_King | 来源:发表于2016-11-19 17:55 被阅读86次

guard语句(如if语句)根据表达式的布尔值执行语句。 您使用保护语句要求条件必须为真,以便在执行保护语句后的代码。 与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"])
// Prints "Hello John!"
// Prints "I hope the weather is nice near you."
greet(person: ["name": "Jane", "location": "Cupertino"])
// Prints "Hello Jane!"
// Prints "I hope the weather is nice in Cupertino."

如果保护语句的条件满足,代码执行在保护语句的结束大括号后继续。 使用可选绑定作为条件的一部分分配值的任何变量或常量都可用于guard语句出现的其余代码块。

如果不满足该条件,则执行else分支中的代码。 该分支必须转移控制以退出保护语句出现的代码块。 它可以使用控制转移语句,如return,break,continue或throw,或者它可以调用不返回的函数或方法,如fatalError(_:file:line :)。

与使用if语句进行相同的检查相比,对需求使用guard语句可提高代码的可读性。 它允许您编写通常执行的代码,而不会将其包装在else块中,并且它允许您保存处理需求后返回的值。

检测ApI的可用性

您可以在if或guard语句中使用可用性条件来有条件地执行代码块,具体取决于您要使用的API是否在运行时可用。 当编译器验证该代码块中的API可用时,将使用来自可用性条件的信息。

if #available(iOS 10, macOS 10.12, *) {
    // Use iOS 10 APIs on iOS, and use macOS 10.12 APIs on macOS
} else {
    // Fall back to earlier iOS and macOS APIs
}

上面的可用性条件指定在iOS上,if的主体仅在iOS 10及更高版本上执行; 在macOS上,只在macOS 10.12和更高版本。 最后一个参数*是必需的,并且指定在任何其他平台上,if的主体在目标指定的最小部署目标上执行。

在其一般形式中,可用性条件采用平台名称和版本的列表。 您可以使用平台名称,例如iOS,macOS,watchOS和tvOS--查看完整列表,请参阅声明属性。 除了指定主要版本号,如iOS 8,您可以指定次要版本号,如iOS 8.3和macOS 10.10.3。

if #available(platform name version, ..., *) {
    
    statements to execute if the APIs are available
    
} else {
    
    fallback statements to execute if the APIs are unavailable
    
}

相关文章

  • Swift-guard语句

    guard语句(如if语句)根据表达式的布尔值执行语句。 您使用保护语句要求条件必须为真,以便在执行保护语句后的代...

  • Swift-guard语句

    guard 是 Swift 2 中我最喜爱的特性之一。虽然完全不使用 guard 也没有什么影响,它只是给我们提供...

  • Swift-guard

    swift 中guard具体的好处 用它避免繁杂的逻辑判断如:guardlet name = json["city...

  • swift-guard

    guard可以理解我简化了判断句,以在判断一个条件为true的情况下执行某语句,否则终止或跳过执行某语句 guar...

  • Swift-guard

    swift中的guard是如何工作的

  • Swift-guard与let

    Swift中类型中加入了?可选类型,因此在每次进行参数判断的时候都要加入是不是为nil的判断,我们通过简单的字符串...

  • Swift-guard关键字

    1.guard关键字必须使用在函数中。2.guard关键字必须和else同时出现。3.guard关键字只有条件为f...

  • 系统学习 JavaScript 的笔记【3】

    JavaScript 语句 if 语句 do-while 语句 while 语句 for 语句 for-in 语句...

  • js语句

    语句:即js整句或命令 类型:赋值语句、条件语句、循环语句、跳转语句、表达式语句、声明语句 1.条件语句if语句:...

  • kotlin精讲-第5章(19)条件语句-if

    条件语句:If if语句,我们可以分为简单if语句、if…else语句、if…else if多分支语句。 if语句...

网友评论

      本文标题:Swift-guard语句

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