美文网首页Swift_VIP专场汇总
Swift4.0_空合并运算符 (a ?? b)

Swift4.0_空合并运算符 (a ?? b)

作者: GavinKang | 来源:发表于2017-12-13 10:54 被阅读92次

这个操作符可以用来快速的对 nil 进行判断,当左侧的值是 非 nil时返回其value左侧的值,为nil时返回其右侧的值。

两个条件:表达式a必须是可选类型,默认值b的类型必须要和a存储值的类型一致
空合并运算符 (a ?? b) 将对可选类型a进行空判断,如果a包含一个值就进行解封,否则就返回一个默认值b

var level: Int?
let startLevel = 1
let currentLevel = level ?? startLevel
print("currentLevel==\(currentLevel)")

let name: String? = "老王"
let name1: String? = nil
// ?? 运算符的优先级低于 + 号,注意使用的时候加上括号啊
print(name ?? "" + "你好")
print(name1 ?? "" + "你好")
addNumber(x: 3, y: nil)

func addNumber(x: Int?, y: Int?){
    // 1.强制解包有风险,如果 x 或者 y 有为 nil 会崩
    //        print(x! + y!)
    // 2.使用 if 判断,但是如果直接使用if,参数很多的时候,会使代码很丑
    if x != nil && y != nil {
        print(x! + y!)
    } else {
        print("x 或者 y 为nil")
    }
    // 使用 运算符 ??
    print((x ?? 0) + (y ?? 0))
    
}

相关文章

  • Swift4.0_空合并运算符 (a ?? b)

    这个操作符可以用来快速的对 nil 进行判断,当左侧的值是 非 nil时返回其value左侧的值,为nil时返回其...

  • 合并空值运算符

    合并空值运算符 合并空值运算符(a ?? b):如果可选项 a 有值则展开,如果没有值,是nil,则返回默认值 b...

  • Optional:合并空值运算符

    合并空值运算符 合并空值运算符(a ?? b)如果可选项 a 有值则展开,如果没有值,是nil,则返回默认值 b...

  • Swift 运算符

    合并空值运算符:?? 合并空值运算符(a ?? b) 如果可选项 a 有值则展开,如果没有值,是nil,则返回默认...

  • C#中? ??与?:的应用2022-09-29

    可空类型修饰符(?) 空合并运算符(??) 例如:a ?? b 当a为null时则返回b,a不为null时则返回a...

  • 理解php中的?:与??

    三元运算符(?:) php 5.3 空合并运算符(??)php 7

  • 合并空值运算符

    合并空值运算符 a ?? b, 如果可选项a有值则展开,如果没有值,返回nil,则返回默认值b。 表达式a必须是一...

  • Swift 学习碎片

    运算符 空合运算符(Nil Coalescing Operator)空合运算符 (a ?? b) 将对可选类型 a...

  • 空合运算符(Nil Coalescing Operator)、区

    空合运算符(Nil Coalescing Operator) 空合运算符(a ?? b)将对可选类型a进行空判断,...

  • Swift—空合运算符

    *空合运算符(Nil Coalescing Operator)* * 空合运算符(a ?? b)将对可选类型a进行...

网友评论

  • youvv:空合并运算符是三元运算符吗?

本文标题:Swift4.0_空合并运算符 (a ?? b)

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