Swift 2.x Plus -- Guard
2016-01-02 09:04
603 查看
如果要判断的条件很多,那么在使用
在很久以前是这样的,但是如果再用这个例子来说明
在最后的
另外需要提到的是在流程控制语句中的
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)")
在最后的
另外需要提到的是在流程控制语句中的
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 < finalSquare print("Game over!")
相关文章推荐
- Swift swith语句
- Swift 2.x Plus
- Swift语言基础篇
- Swift 等同性判断 Hashable Equatable ==
- Swift实现OC中的单例模式
- README
- iOS与Swift的那一个NS(Mutable)AttributedString
- Swift语言问题记录
- iOS开发系列--Swift进阶
- IOS开发--基于Swift集成高德地图
- 告别CSDN,启用新域名bestswifter
- Swift的基础,操作符,字符串和集合类型
- 分享你最喜欢的技巧和提示(Xcode,Objective-C,Swift,C...等等)
- Swift常见引用循环及解决方案
- Swift自定义UITableView、UICollectionView
- swift学习日志—— Log日志
- Swift基础内容
- iOS navigation bar title 换成自定义的图片 swift 版
- Swift观察者模式
- swift中通知的使用