首页 > 嗟来之食 > Swift语法进阶–guard – Erma_Jack –
2016
05-31

Swift语法进阶–guard – Erma_Jack –

Swift语法进阶–guard

swift2.0后加入了guard,好长一段时间都不用,因为不习惯,突然有一次看到一篇文章关于Swift中是否应该弃用guard的思考,觉得讲的也挺有道理,之后小小的研究了guard,用了一段时间,觉得挺不错的,这里分享给大家,希望在用swift开发但是不习惯guard的小伙伴们也慢慢的接受guard吧!

Optional
说道guard之前先来看看swift中的可选值得概念,Optional,一个数值可能为nil
语法 let temp: String! = nil,解释下let 常量名: 数据类型! = 值
可选值在使用的时候必须经过解包才能使用,解包语法,强行解包在变量名后面加上!,示例temp!
if let
定义一个方法
func test(str: String?)
{
// 可选字符串解包后判断是否为nil
let temp: String! = str
if temp != nil
{
print("执行")
}
}
上面定义了一个方法,传入一个str,在方法中定义了一个temp等于传入的str,temp经过强行解包后判断,如果不等于nil就执行,只是示例代码,不怎么复杂~~
用if let改写
func test1(str: String?)
{
// if let 自带解包
if let temp = str{
print(temp)
}
}
还是一样的,传入一个str,在方法中if let自动解包str并且复制给temp,这时候temp有值进入判断,如果temp没有值,不进入判读,仔细看看,没看明白就再仔细看看,对比对比,是不是和上面的示例达到了一样的效果?😄哈哈~神奇吧,这是swift的特性吧,其实开发中有时候用用也挺好用的。。。
guard
guard与if let相反
还是先定义一个方法
func test2(str: String?)
{
let temp: String! = str;
if temp == nil
{
return
}
print(temp)
}
传入一个str,方法里定义个temp,并把str的值赋值给temp,如果temp等于nil,直接退出,如果不等于,不进入判断,直接执行下面的方法
用guard else改写
func test3(str: String?)
{
guard let temp = str else {return}
print(temp)
}
一样的先传入一个str,在guard中,给temp赋值str,如果str为不为nil,执行方法,如果是nil,直接退出。如果还是看不懂,没明白哪里有好处,没事儿,再看上面的示例,如果还是看不懂,再重复看,多看一会儿就能看懂。。。看懂了,哈。。。是不是觉得也挺简单的!!😄😄

最后编辑:
作者:
这个作者貌似有点懒,什么都没有留下。

留下一个回复