美文网首页
guard关键字(守护)

guard关键字(守护)

作者: 起个p名费劲 | 来源:发表于2018-11-29 09:33 被阅读0次

guard语句判断其后的表达式布尔值为false时,才会执行之后代码块里的代码,如果为true,则跳过整个guard语句

我们以今年高考为例,在进入考场时一般都会检查身份证和准考证,我们写这样一个方法:

func checkup(person: [String: String!]) {
   
    // 检查身份证,如果身份证没带,则不能进入考场
    guard let id = person["id"] else {
        print("没有身份证,不能进入考场!")
        return
    }
     
    // 检查准考证,如果准考证没带,则不能进入考场
    guard let examNumber = person["examNumber"] else {
        print("没有准考证,不能进入考场!")
        return
    }
     
    // 身份证和准考证齐全,方可进入考场
    print("您的身份证号为:\(id),准考证号为:\(examNumber)。请进入考场!")
     
}
 
checkup(["id": "123456"]) // 没有准考证,不能进入考场!
checkup(["examNumber": "654321"]) // 没有身份证,不能进入考场!
checkup(["id": "123456", "examNumber": "654321"]) // 您的身份证号为:123456,准考证号为:654321。请进入考场!

这里值得注意的是,id和examNumber可以在guard语句之外使用,也就是说当guard对其表达式进行验证后,id和examNumber可在整个方法的作用域中使用,并且是解包后的。

我们再用if else语句写一个类似的方法:

     
    if let id = person["id"], let examNumber = person["examNumber"] {
        print("您的身份证号为:\(id),准考证号为:\(examNumber)。请进入考场!")
    } else {
        print("证件不齐全,不能进入考场!")
    }
     
    print("您的身份证号为:\(id),准考证号为:\(examNumber)")  // 报异常
     
}
 
checkupUseIf(["id": "123456"]) // 证件不齐全,不能进入考场!
checkupUseIf(["examNumber": "654321"]) // 证件不齐全,不能进入考场!
checkupUseIf(["id": "123456", "examNumber": "654321"]) // 您的身份证号为:123456,准考证号为:654321。请进入考场!

相关文章

  • guard关键字(守护)

    guard语句判断其后的表达式布尔值为false时,才会执行之后代码块里的代码,如果为true,则跳过整个guar...

  • Swift-guard关键字

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

  • swift 中 guard 关键字的使用

    注意事项 1.guard关键字必须使用在函数中。 2.guard关键字必须和else同时出现。 3.guard关键...

  • SwiftCafe 快报 - guard 关键字语法

    我们来看一个 guard 关键字的例子: 这里的 guard 关键字,判读了 UIImage 是否创建成功,如果没...

  • OC中有guard吗??

    先来看看 Swift 的 guard 关键字 guard 是 Swift 中特有的一个关键字,用于处理一些条件不成...

  • [OC] 如何在 OC 中使用类似 Swift 的 guard

    Swift 的 guard 关键字 guard 是 Swift 中特有的一个关键字,用于处理一些条件不成立时进行函...

  • Optional

    guard 的好处 闭包行为 Never 关键字

  • 逻辑控制

    1.循环结构 2.选择结构 3.where关键字 4.guard关键字

  • Guard关键字

    没有guard 有guard

  • Swift 2.0 - Guard

    Overview:Guard 是Swift 1.2之后新引进的一个关键字。Guard 的功能是帮助你的程序在进行有...

网友评论

      本文标题:guard关键字(守护)

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