Swift中允许重载运算符,也可以自定义运算符。
一.赋值运算符(=)
1.同Java,C语言相同,将等号右边的值或变量赋值给等号左边的变量或常量。
2. Swift中的赋值运算符是没有返回值的,因此Swift中不支持连续赋值。举个栗子:
var a:Int, b:Int;
b = a =20;//编译时会对b发出警告。
3.由于Swift的赋值运算符没有返回值,所以Swift中编译时可以防止把“==”写成“=”的错误情况。
二.算术运算符(+、-、*、/、%、++、--)
1.同Java语言相同,+除了表示两个数相加,还可以用于连接两个字符串。-除了表示两个数相减,还可以表示负数。
2.对于除法(/),有四点:
(1)如果除法的两个操作数都是整型,结果将也是整型----截取自然除法结果的整数部分;
(2)如果除法的两个操作数都是整数,则除数不可以为0,否则将报错。
(3)如果除法的两个操作数有一个或两个都是浮点数,则结果也是浮点数。此时允许除数为0/0.0,除以0的结果是正/负无穷大。
(4)var a = 4 / 3//结果为1
var b = -4 / 3//结果为-1
var c = 4 / -3//结果为-1
var d = -4 / -3//结果为1
可以得到:除法结果的正负号同自然除法中一样的----相同为正,不同为负。
3. Swift中改进了Oobjective—C中的求余运算符,不再要求两边的操作数都必须是整数。
(1)求余运算的结果不一定是整数----就是自然除法中商为整数的余数。
(2)结果的正负号总是跟求余符号左边操作数的符号相同。
(3)如果两个操作数都是整数时,要求第二个操作数不能为0
(4)如果两个操作数中有一个或两个浮点数,则第二个操作数可以是0/0.0,此时求余的结果是非数:nan。
(5)0/0.0对0以外的任何数求余都得到0/0.0
4.对于++和--,同Java语言相同,同样也有前加加/减减和后加加减减的区别。这里就不再多说了。
网友评论