Swift Basic Operators

​ Swift支持绝大部分的标准C语言操作符,并且增强了几个操作符的功能以消除常犯的编码错误。例如:赋值运算符(=)不再拥有返回值来阻止被错误的使用在比较运算符(==)的场合;算术运算符(+, -, *, /, % 等)会对数据进行检查,阻止数据溢出。Swift也提供了两个C语言中没有的范围运算符(a..<ba...b),用来快捷表达一个区域范围值。

赋值运算符

​ 用来初始化或者更新左值

1
2
3
4
5
var a = 5
let (x, y) = (1, 2) // x is equal to 1, and y is equal to 2
if x = y {
// 存在语法错误,因为赋值运算符没有返回值
}

算术运算符

​ 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) 包含边界ab,其中必须满足a <= b;半封闭范围运算符(a..<b)包含a,但不包含b。其中必须满足a < b

逻辑运算符

​ 三个C标准的逻辑运算符!a , a && b , a || b,从左至右,有短路运算的特点。为了方便阅读,多逻辑运算符组合出现的时候建议多加括号()

参照文档

>
>
>
>
>
>

​Copyright (c) liangtong. All rights reserved.

坚持原创技术分享,您的支持将鼓励我继续创作!