Swift支持绝大部分的标准C语言操作符,并且增强了几个操作符的功能以消除常犯的编码错误。例如:赋值运算符(=
)不再拥有返回值来阻止被错误的使用在比较运算符(==
)的场合;算术运算符(+, -, *, /, % 等
)会对数据进行检查,阻止数据溢出。Swift也提供了两个C语言中没有的范围运算符(a..<b
和a...b
),用来快捷表达一个区域范围值。
赋值运算符
用来初始化或者更新左值
算术运算符
Swift支持四个标准的算术运算符+, -, *, /
;与其他语言不同的是,这些运算符默认情况下不允许被重写。另外+
运算符也支持字符串连接。
取模运算符
与其他语言一样,注意一点:a % b
的符号与a
相同
单目运算符
包括单目+
运算符和单目-
运算符
复合赋值运算符
和C相同,Swift允许使用一个运算符和赋值运算符(=
)来快捷组合,比如+=, -=
。复合运算符也没有返回值。
比较运算符
Swift支持所有标准C语言的比较运算符:a == b, a != b, a > b, a < b, a >= b, a <= b
。另外,Swift还提供了’=== 和 !==’运算符来判断两个对象是否引用了同一个对象。比较运算符会返回布尔Bool类型值。
也可以对元组类型使用比较运算符,元组的比较从左向右,每次比较一个元素。
注:Bool类型不能比较,Swift标准库中比较运算符元组为少于7个元素的元组,如果元素个数不符合条件,则需要自己实现比较运算符。
三目运算符
同其它语言一样,格式为question ? answer1 : answer2
。
Nil-Coalescing运算符
格式为:(a ?? b
),解包’可选类型’a如果a包含一个值,则返回改值;否则返回默认值b。该运算符可以更加形象地用三目运算符表示:a != nil ? a! : b
。且该运算符也有短路运算的特点。使用时需要注意有两点:
- a必须是可选类型
- b的类型必须和a解包后的类型匹配
范围运算符
封闭范围运算符 (a…b)
包含边界a
和b
,其中必须满足a <= b
;半封闭范围运算符(a..<b)
包含a
,但不包含b
。其中必须满足a < b
。
逻辑运算符
三个C标准的逻辑运算符!a , a && b , a || b
,从左至右,有短路运算的特点。为了方便阅读,多逻辑运算符组合出现的时候建议多加括号(
,)
。
参照文档
>
>
>
>
>
>
Copyright (c) liangtong. All rights reserved.