Swift小知识点之空合运算符(??)的使用

一、空合运算符的使用:

当一个可选类型的数据为 nil 时,就默认给它赋一个值,然后再进行运算;

  • “??” 为空合运算符;
    • 如果 “??” 前面的数据为 nil 时,就直接取 “??” 后面的值;

    • 如果 “??” 前面的数据不等于 nil,就将 “??” 前面的数据强制解包,并进行赋值;

  • 示例
     例1和例2为字符串类型对应的可选类型
    • 例1:“??” 前面的数据不等于 nil

      var a:String? = "a"
      let b = a ?? "abc"
      b    //"a"
    • 例2:“??” 前面的数据等于 nil
      var a:String? = "a"
      a = nil
      let b = a ?? "abc"
      b    //"abc"

   例3和例4为整形类型对应的可选类型

    • 例3:“??” 前面的数据不等于 nil
      var c:Int? = 123
      let d = c ?? 10
      d    //123
    • 例4:“??” 前面的数据等于 nil
      var c:Int? = 123
      c = nil
      let d = c ?? 10
      d    //10

二、如果没有空合运算符,则代码实现如下:

  • 第一种实现:if 结构

    var aa:Int? = 2
    //aa = nil
    var bb = 0
    if aa == nil {
        bb = 0
    }else{
        bb = aa!
    }
    bb    //2
  • 第二种实现:三目运算符表达式

    var aa:Int? = 2
    aa = nil
    var bb = 0
    bb = aa == nil ? 0 : aa!
    bb    //0

     

posted on 2021-04-09 10:21  梁飞宇  阅读(1168)  评论(0)    收藏  举报