swift解包
作者:
一个好笑的人 | 来源:发表于
2021-12-12 23:19 被阅读0次
强制解包:
//能确保该变量一定不为空的时候使用
var text:String!
text="GG"
print(text!)
普通解包:
if let
func function()->String{
var text:String!
text="GGG"//注释这个,对比不同
if let text=text{
return text;
}
return "nil";
}
print (function())
guard let else
func function()->String{
var text:String!
text="GGG"//注释这个,对比运行结果
guard let text=text else {
return "nil";
}
return text;
}
print(function())
- 在使用if let的时候其大括号类中的情况才是正常情况,而外部主体是非正常情况的返回的nil;
- 而在使用guard let的时候,guard let else中的大括号是异常情况,而外部主体返回的是正常情况.
-
对于一个以返回结果为目的的函数,函数主体展示正常返回值,而将异常抛出在判断中,这样不仅逻辑更清晰,而且更加易于代码阅读
对比 强制解包&普通解包
- 推荐使用普通解包,因为强制解包一旦失败会直接崩溃。
- 就算很确定某个变量一定不会为空,而去使用强制解包,在复杂多线程工程里面还是可能会出错的。
参考文章:
本文标题:swift解包
本文链接:https://www.haomeiwen.com/subject/jypdfrtx.html
网友评论