Swift语句中 if 和 guard 的区别

对于刚熟悉Swift的Coder来说, 很容易将 if 和 guard 的用法混淆.

guard语句最大的优势就是在解包(Optional)时候, 比用 if 语句解包更优雅, 避免在大量串行解包的时候出现金字塔.

下面给出一个一目了然的🌰.

// guard
var a: String? = "ddd"
guard let b = a else { print("a is nil") }
print(b) //注意解包之后b的作用域仍然有效

//if
var a: String? = "ddd"
 if let b = a {
     print(b) //解包之后b的只有在 { ... } 内才有作用域
 }

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容