09-Swift 空合运算符的使用

一、空合运算符的使用:

  • 当一个可选类型的数据为 nil 时,就默认给它赋一个值,然后再进行运算;

  • “??” 为空合运算符;

  • 如果 “??” 前面的数据为 nil 时,就直接取 “??” 后面的值;

  • 如果 “??” 前面的数据不等于 nil,就将 “??” 前面的数据强制解包,并进行赋值;

  • 例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"
例1和例2为字符串类型对应的可选类型,例3和例4为整形类型对应的可选类型
  • 例3:“??” 前面的数据不等于 nil
var c:Int? = 123
let d = c ?? 10
d    //123
  • 例4:“??” 前面的数据等于 nil
var c:Int? = 123
c = nil
let d = c ?? 10
d    //10

二、如果没有空合运算符,则代码实现如下:

  • 第一种实现: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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young阅读 9,495评论 1 10
  • 136.泛型 泛型代码让你可以写出灵活,可重用的函数和类型,它们可以使用任何类型,受你定义的需求的约束。你可以写出...
    无沣阅读 5,489评论 0 4
  • 运算符 是可以检查,修改或者组合值的特殊符号或者短语。例如,加法运算符(+)将两个数相加,像let i = 1 +...
    BoomLee阅读 5,866评论 0 4
  • 最近ico事件闹得沸沸扬扬,在这前后一直在思考比特币和区块链技术带来的变革,很多人都在用股市的思维方式考虑比特币的...
    马尚尚阅读 2,806评论 0 0
  • People favors clevers, whereas fortune favors fools, thus...
    wojiaocaimeina阅读 4,138评论 0 0

友情链接更多精彩内容