swift操作符??

了解了?和!,又遇到??,说实话感觉很晕~~感觉??就像三目运算符

?? 操作符的左边是一个 Optional 值,右边是一个普通值,它的作用就是,如果左边的 Optional 值为 nil, 那么就使用右边的普通值作为返回值,如果左边的 Optional 不为 nil,则返回左边的 Optional 解包后的值。

例如

var a:Int?
print(a ?? 2)

打印2,因为a是可选类型,而且没有给显式赋值操作,所以为nil。当??左边optional值为nil,则取??右边的值。故打印2

同理

var a:Int? = 100
print(a ?? 2)

打印100,因为可选类型a显式赋值为100,??左边optional值不为nil,所以为解包后的值,即100

个人理解??相当于三目运算。例如上边第一个例子可以转换成

print(a == nil ? 2 : a)

即如果a==nil成立,那么取2,如果a==nil不成立,那么取a值


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值