您的位置:首页 > 移动开发 > Swift

[绍棠_Swift] Swift3.0中guard语句的使用和理解

2017-08-03 17:30 169 查看
和if一样,guard是基于一个表达式的布尔值去判断某些代码是否该被执行,和if不一样的地方是,guard只有在条件不满足(布尔值==false时)才会执行,类似反if。通过伪代码来直观的感受一下

首先由一个可选类型,然后判断x是否存在并且大于0,当条件成立执行一些代码

第一种 oc写法

var x:int?

if x == nil | x < 0 {

return 

}

//do x

print(\(x))

典型的OC写法,没有很大的问题,但是会让你的代码看上去难以理解

第二种 Swift 写法

if let _ = x where x > 0 {

//do x

}

//不符合do

用了swift中的可选绑定让代码的更容易被理解,但是所有要执行的代码放在了条件判断当中,如果多几个这样的判断,会让你的代码有很多层的嵌套,同样会导致很难读懂

第三种 guard

guard let _ = x where x > 0 else { return  //不符合 }

//do x  符合

对比以上2中,很容易发现guard让你的代码看上去简单易懂,而且不会有很多的嵌套出现,当然guard对于非可选类型也是可以用的如:

guard x > 0 else {return }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  swift