看完了swift运算符(基本运算符)这章,感觉和as3的运算法则如出一辙,简单记录如下。(高级运算符到看到的时候再补上)
基本运算符
运算符有一元,二元和三元运算符。
一元:-a,+a
二元:a + b
三元:a ? b: c
l 赋值运算符
let a = 10
let (x,y) = (1,2)
与 C 语言和Objective-C 不同,Swift 的赋值操作并不返回任何值。所以以下代码错误的:
if x = y {
// 此句错误,因为 x = y 并不返回任何值
}
l 数值运算
Swift 让所有数值类型都支持了基本的四则运算:
加法(+)、减法(-)、乘法(*)、除法(/)
l 求余运算
求余运算(a % b)是计算b的多少倍刚刚好可以容入a,返回多出来的那部分(余数)。
为了得到a % b的结果,%计算了以下等式,并输出余数作为结果:
a = (b × 倍数) + 余数
-9 % 4 // 等于 -1
把-9和4代入等式,-2是取到的最大整数:
-9 = (4 × -2) +-1
在对负数b求余时,b的符号会被忽略。这意味着 a % b 和 a % -b的结果是相同的。
不同于 C 语言和Objective-C,Swift 中是可以对浮点数进行求余的。
8 % 2.5 // 等于 0.5
var b = 8.0
// swift3.0以上 对小数取余
var c = b.truncatingRemainder(dividingBy: 2.5)
l 复合赋值(Compound Assignment Operators)
+=,*=,/=, %= 等
l 比较运算
所有标准 C 语言中的比较运算都可以在 Swift 中使用。
等于(a == b)
不等于(a!= b)
大于(a > b)
小于(a < b)
大于等于(a >= b)
小于等于(a <= b)
不恒等(!==)
恒等于(====)
注意:Swift 也提供恒等===和不恒等!==这两个比较符来判断两个对象是否引用同一个对象实例。
l 区间运算符
闭区间:(a...b)包括a和b
半闭区间:(a..<b)不包括b
Ps:看网上的教程,闭区间都标示成(a..b),根本无法运行。究其原因应该是以前版本的写法,现在写作(a..<b)。我的运行环境是是Xcode6.4,swift1.2。
l 逻辑运算
逻辑非(!a)
逻辑与(a && b)
逻辑或(a || b)