swift 合并空值运算符 双问号 a ?? b

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

  • 表达式a必须是一个可选类型。表达式b必须与a的存储类型相同

  • 实际上是三元运算符作用到Optional上的缩写,(a!=nil?a!:b)

code

//: A UIKit based Playground for presenting user interface
  
import UIKit
// 直接拆包 具有危险性,
func addTwoNum(num1:Int?,num2:Int?)->Int{
    return num1!+num2!;
}
// 以往的写法比较繁琐,
func addTwoNum2(num1:Int?,num2:Int?)->Int{
    if(num1 != nil && num2 != nil){
        return num1!+num2!
    }
    if(num1 != nil){
        return num1!
    }
    if(num2 != nil){
           return num2!
       }
    return 0
    
}
func addTowNum3(num1:Int?,num2:Int?)->Int{
    
    return (num1 ?? 0)+(num2 ?? 0)
    
}

 

你可能感兴趣的:(#,swift)