美文网首页
空合运算符(Nil Coalescing Operator)

空合运算符(Nil Coalescing Operator)

作者: 陌上北辰 | 来源:发表于2016-11-28 16:05 被阅读225次

    空合运算符(a??b)将对可选类型a进行空判断,如果a包含一个值就进行解封,否则就返回一个默认值b,这个运算符有两个条件

    . 表达式a 必须是optional类型

    .默认值b的类型必须要和a存储值的类型保持一致

    空合运算符是对以下代码的简短表达方法

    a  !=  nil ? a! : b

    代码解释:当可选类型a的值不为空时,进行强制解封(a!)访问a中的值;反之,当a中值为空时,返回默认值b。

    注意:如果a为非空(non-nil),那么值b将不会被估值,这也就时所谓的短路求值

    eg:

    下面代码实现了默认颜色 和可选自定义颜色名之间的抉择

    let defaultColorName = "red"

    var userDefinedColorName:String? //默认值为nil

      var colorNameToUse = userDefinedColorName??defaultColorName

    //userDefinedColorName 的值为空,所以colorNameToUse的值为"red"

    如果userDefinedColorName:String 不为nil  ,colorNameToUse则为userDefinedColorName解包后的值

    相关文章

      网友评论

          本文标题:空合运算符(Nil Coalescing Operator)

          本文链接:https://www.haomeiwen.com/subject/jseopttx.html