-  
合并空值运算符(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)
    
}
 
来源:oschina
链接:https://my.oschina.net/u/4417917/blog/4469436