Swift: "??"运算符

"??" -Nil Coalescing Operator。
包含"?"作为运算符,我们肯定想到了三目运算符" ? : ",两者也确实可以实现相同的功能,不过"??"更加简洁。
以下通过苹果官方的文档来解释:

Nil-Coalescing Operator.png

简单翻译就是:??运算符(a ?? b)就是把可选类型a拆包后,判断如果a包含一个非空值,就返回a拆包后的值,如果a为空值,就返回b。其中a必须是可选类型,b必须是和a所包含的数据类型相同。

(a ?? b)跟 a != nil ? a! : b效果一样。

相对来说,??运算符提供了一个更加简便的方式来封装这种条件确认和拆包成简洁易读的形式。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 运算符是一个符号,用于告诉编译器执行一个数学或逻辑运算。 Swift 提供了以下几种运算符: 算术运算符 比较运算...
    零度_不结冰阅读 315评论 0 0
  • 1、简介 Swift中类或结构体可以对已有的运算符进行自定义实现,赋予另外一种功能。可以成为运算符函数,即运算符重...
    SuperDawn_0828阅读 2,079评论 0 3
  • 诗人写下的离愁三千,看破的人世百态,道过的哲思杂感。琴声悠悠,如泣如诉,也道出了我对人世沧桑之感。 琴弦波动,带动...
    玉龙飞雨阅读 577评论 0 4
  • 刚刚和朋友约好明天陪她产检。 有时候觉得时间真快,嬉闹的大学时代仿佛就在昨天,甚至现在我的眼前还能清晰的浮现出每次...
    王滚滚打小怪兽阅读 106评论 1 1
  • 㛤子阅读 219评论 1 1