空合运算符 ??(Nil Coalescing Operator)
来源:互联网 发布:三国战记电脑mac版 编辑:程序博客网 时间:2024/04/27 13:53
空合运算符(a ?? b):空合运算符是对可选类型a进行判断,如果a的值为nil,则返回b;如果a不为nil,则直接返回a!(对a强制拆包),不再运行b(也叫短路运算),这个运算是简化了三目运算符 return a != nil ? a! : b
来个例子:
var aStr :String? = "a" var defaultStr :String = "default" let str = aStr ?? defaultStr println(str)
输出str的值是a
一般情况下,使用空合运算符需要满足两个条件:
1.a必须是可选类型(optionals)
2.默认值b的类型和可选类型a存储的值一致
当然还有另外一种情况,就是当默认值b也是一个可选类型的时候(这个可选类型存储的值和a存储的值类型一致),举个例子:
var aStr :String? = "b" var bStr :String? let str = aStr ?? bStr
println(str)此时输出的结果是optional(“b”)。为什么返回一个可选类型呢???
func ??<T>(optional: T?, defaultValue: @autoclosure () -> T?) -> T? func ??<T>(optional: T?, defaultValue: @autoclosure () -> T) -> T
可以看下这两个方法,说是叫运算符,其实是一个func。当默认值为可选类型时,返回的数据类型就是可选类型。所以使用空合运算符需要满足两个条件
1.a必须是可选类型(optionals)
2.默认值b的类型和可选类型a存储的值一致,也可以和a的类型一样
引用:《The Swift Programming Language》
如有问题欢迎指正,谢谢
0 0
- 空合运算符 ??(Nil Coalescing Operator)
- Swift学习笔记(十二)——nil的聚合运算 Nil Coalescing Operator
- nil coalescing operator
- Swift三元运算符和Nil Coalescing运算符
- Swift 空合运算符
- 运算符(Operator )
- 3、运算符(operator)
- 3、运算符(operator)
- note4 运算符(operator)
- 19.选并操作符(空合运算符)
- swift 学习笔记(11)-空合运算符
- PL/SQL 运算符(Operator)
- operator重载运算符(一)
- 运算符重载(operator overloading)
- operator重载运算符
- operator 运算符 系列
- operator 运算符重载
- operator运算符重载
- PAT 1006部分A+B
- 复杂网络 有关节点
- hdu 1074 Doing Homework 压缩dp
- 前序遍历+中序遍历生成二叉树
- Hadoop,HBase,Storm,Spark到底是什么?
- 空合运算符 ??(Nil Coalescing Operator)
- HDU - 2546 饭卡
- android数据恢复
- 素数判断算法(高效率)
- 排序算法思想及代码
- Gulp安装及使用
- 优化Myeclipse8.5
- HDOJ 5416 CRB and Tree DFS
- INSTALL_FAILED_OLDER_SDK