Swift三元运算符和Nil Coalescing运算符

  

三元运算符

     三元运算的特殊在于它是有三个操作数的运算符,它的原型是问题?答案1:答案2。

    三元运算符简洁地表达根据问题成立与否作出二选一的操作。如果问题成立,返回答案1的结果; 如果不成立,返回答案2的结果。

下面我们来看一个三元运算符的示例计算表格行高的例子。如果有表头,那行高应比内容高度要高出50像素; 如果没有表头,只需高出20像素。

  1 |  let contentHeight = 40

  2 |  let hasHeader = true

  3 |  let rowHeight = contentHeight + (hasHeader ? 50 : 20)

输出结果: rowHeight 现在是 90

三元运算提供有效率且便捷的方式来表达二选一的选择。需要注意的事,过度使用三元运算就会由简洁的代码变成难懂的代码。我们应避免在一个组合语句使用多个三元运算符。

Nil Coalescing运算符

   Nil Coalescing运算符的原型是答案1??答案2。我们可以用一句代码表示Nil Coalescing运算符:

  1 |  let c = a ?? b

使用该运算符必须满足以下两个条件:

1. a必须是可选类型的。

2.b的类型必须和a解包后的值类型一致的

   只有符合这两个条件后,第1行代码表示的就是c的值是a或b中的一个,当a解包后的值不为nil时,就将a的值赋值给c。当a解包后的值为nil时,就将b的值赋值给c。

我们可以用三元运算符来更清晰的理解Nil Coalescing运算符。它可以表示为

  1 |  let c = a != nil ? a ! : b

从上面的代码我们很容易理解,当a的值不等于nil时,将a解包后的值赋值给c,否则将b的值赋值给c。

  1 |  var  a:String?

  2 |  let  b = "str"

  3 |  var c = a ?? b

  4 |  print(c)

输出结果:str。

上述代码中,a的值为nill,所以就会把b的值赋值给c。最后c的值就是str。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值