Swift 2.x Plus -- Guard
来源:互联网 发布:过磅软件 编辑:程序博客网 时间:2024/06/14 15:44
如果要判断的条件很多,那么在使用if-let
这个模式的时候就会遇到一个很麻烦的问题,那就是很深的嵌套,比如这样:
var lastName: String?var firstName: String?var gender: String?if let ln = lastName { if let fn = firstName { if let g = gender { } }}
在很久以前是这样的,但是如果再用这个例子来说明if-let
总是嵌套很多就不合适了。因为现在你可以这样:
if let ln = lastName, let fn = firstName, let g = gender where ln = "Jordan" { // do something}
if-let
只是要表达:符合条件的都进来开始下一步的操作。我们下面要讲的正好是和这个语义相反的。这个就是guard
。
guard
语句要表达的正好相反:不符合条件的都进来,符合条件的待会儿处理。只是不符合条件的处理块中需要有跳出语句块的操作。如:
guard let ln = lastName, let ft = firstName, let g = gender where lastName == "Lee" else { print("not good in gurad") return //跳出}print("***last name is: \(ln), first name is: \(ft), gender is: \(g)")
在最后的print
语句中使用了guard里的条件语句中let得出来的变量名称。是的,这些在guard条件里使用的变量都可以再guard语句后面使用。
另外需要提到的是在流程控制语句中的do-while
现在变成了repeat-while
。这里引用官网的例子:
repeat { // move up or down for a snake or ladder square += board[square] // roll the dice if ++diceRoll == 7 { diceRoll = 1 } // move by the rolled amount square += diceRoll} while square < finalSquareprint("Game over!")
0 0
- Swift 2.x Plus -- Guard
- Swift 2.x Plus
- swift guard
- Swift Guard Statement
- Swift 2.0关键字guard
- Swift语法之 guard
- swift Guard语法
- Swift的Guard语句
- Swift-guard & defer
- Swift的Guard语句
- swift guard关键字使用
- swift的Guard语句
- swift-guard语句
- Swift的Guard语句
- Swift guard使用
- Swift 关键词guard(监视)
- swift 关键字guard 计算属性
- 3.Swift的Guard语句
- 162,获取设备的宽,高,类型等信息
- 初学安卓-------Activity
- 微信分享链接或网站文章到微信朋友圈,缩略图片不显示,该如何解决?
- 《Monkey Android》第14课ToggleButton和RatingBar
- 好玩的C#
- Swift 2.x Plus -- Guard
- 图片懒加载的jQuery插件lazyLoad源码分析十八问
- javascript中那些计算元素位置的方法和jQuery位置计算方法比较
- 数据库访问方式(ODBC OLEDB ADO ADO.NET)
- Android布局的基本方法
- 初学安卓-----Fragment生命周期
- 机顶盒加密系统流程 ECM EMM CW SK
- arduino ide的串口权限解决
- iphone系列手机屏幕尺寸、分辨率及适配详细讲解!