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"
- 例2:“??” 前面的数据等于 nil
例3和例4为整形类型对应的可选类型
-
- 例3:“??” 前面的数据不等于 nil
var c:Int? = 123 let d = c ?? 10 d //123
- 例3:“??” 前面的数据不等于 nil
-
- 例4:“??” 前面的数据等于 nil
var c:Int? = 123 c = nil let d = c ?? 10 d //10
- 例4:“??” 前面的数据等于 nil
二、如果没有空合运算符,则代码实现如下:
-
第一种实现: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
浙公网安备 33010602011771号