- 加法(
+
) - 减法(
-
) - 乘法(
*
) - 除法(
/
)
1 + 2 // 等于 3
5 - 3 // 等于 2
2 * 3 // 等于 6
10.0 / 2.5 // 等于 4.0
与 C 语言和 Objective-C 不同的是,Swift 默认情况下不允许在数值运算中出现溢出情况。但是你可以使用 Swift 的溢出运算符来实现溢出运算(如 a &+ b
)。详情参见 溢出运算符 。
加法运算符也可用于 String
的拼接:
"hello, " + "world" // 等于 "hello, world"
求余运算符
求余运算符(a % b
)是计算 b
的多少倍刚刚好可以容入 a
,返回多出来的那部分(余数)。
注意:求余运算符(
%
)在其他语言也叫取模运算符。但是严格说来,我们看该运算符对负数的操作结果,「求余」比「取模」更合适些。
我们来谈谈取余是怎么回事,计算 9 % 4
,你先计算出 4
的多少倍会刚好可以容入 9
中:
你可以在 9
中放入两个 4
,那余数是 1(用橙色标出)。在 Swift 中可以表达为:9 % 4 // 等于 1
。为了得到 a % b
的结果,%
计算了以下等式,并输出 余数
作为结果:a = (b × 倍数) + 余数
。当 倍数
取最大值的时候,就会刚好可以容入 a
中。
把 9
和 4
代入等式中,我们得 1
:9 = (4 × 2) + 1
。同样的方法,我们来计算 -9 % 4
:-9 % 4 // 等于 -1
。把 -9
和 4
代入等式,-2
是取到的最大整数:-9 = (4 × -2) + -1
,余数是 -1
。
在对负数 b
求余时,b
的符号会被忽略。这意味着 a % b
和 a % -b
的结果是相同的。
一元负号运算符
数值的正负号可以使用前缀 -
(即一元负号符)来切换:
let three = 3
let minusThree = -three // minusThree 等于 -3
let plusThree = -minusThree // plusThree 等于 3, 或 "负负3"
一元负号符(-
)写在操作数之前,中间没有空格。
一元正号运算符
一元正号符(+
)不做任何改变地返回操作数的值:
let minusSix = -6
let alsoMinusSix = +minusSix // alsoMinusSix 等于 -6
虽然一元正号符什么都不会改变,但当你在使用一元负号来表达负数时,你可以使用一元正号来表达正数,如此你的代码会具有对称美。