Swift Optional 可选型的解包简单使用

<pre name="code" class="objc">//swift是严格的强类型语言
var errorMessage: String? = "adfa"
if let message = errorMessage {//尝试解包, 把他付给一个变量
    message.uppercased()
}else{
    "error"
}
errorMessage?.uppercased()//等价上面的if判断 ?对可选类型的errorMessage 进行解包 如果不为nil 就继续执行代码, 如果为nil 解包失败就直接终止代码,不会出现报错信息

errorMessage!.uppercased()//这个写法要和上面的有所区分, 从意义上来说他们两个完全不同, !表示 确定这个变量不会为空, 他仍然是个可选类型, 如果变量为空的话 这句话就会报错

var uppercaseErrorMessage = errorMessage? . uppercased()//此时 uppercaseErrorMessage 虽然没有声明为可选类型,但他确实是个可选类型, 因为errorMessage?有可能返回nil 后面的表达式返回的是个可选型 所以赋值给uppercase,他就是可选型
//nil 
let message2 = errorMessage == nil ? "No error" : errorMessage!
//简洁强大
<pre name="code" class="objc">let message3 = errorMessage ?? "No error"
// 这里的 ?? 表示 message3 想取到 errorMessage 的 值 如果errorMessage 为nil 则 去 后面的值



                
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值