赋值、算数、位运算

赋值运算符 = += -= *= /= ...

Swift中 = 运算符本身不返回值了,即 if a= b 会报错。

加减乘除

Swift对加法运算进行了类型扩展,支持字符串和字符串的链接

var s1 = "今天"

let s2 = "天气不错"

s1 = s1 + s2

print(s1)

Swift对除法运算增强了”0”的使用安全,即除0会报错

Swift增加了溢出运算符&,即溢出时获得极限值,如:

var value:UInt8 = UInt8.max

print("\(value&+1)”) //255

value = UInt8.min

print("\(value&-1)”) //0

Swift对于取余运算,扩展了负整数、浮点数的取余运算

自变运算符、负数运算符:和C语言的一样

位运算符:& | ~ ^ >> << 和C语言一样

区间运算符

Swift增加了对区间运算符的支持

闭区间: a…b 表示从a到b且包含b在内

半开区间:a..<b 表示a到b但不包含b在内

主要用于分支循环语句当中,如:

for index in 10..<15 {

print(index) //10 11 12 13 14

}

逻辑、关系

关系运算符: == != > < >= <=

逻辑运算符: && || !

三目运算符:? :

这些运算符保持C语言的用法

空合运算符: ??,是对三目运算符在可选类型下的一种优化

规则: res = value1?? value2 —> res = (value1 != nil) ? value1! : value2

a. value2必须是非可选类型

b.当value1为nil时,res= value2

c. 当value1不为nil时,如果value1为可选类型,res= value1!,不是可选类型,res = value1

特征运算符:=== !==

用于判断两个对象的引用是否指向头一个对象

区分于 == != 用于判断两个元素的值是否相等

转换运算符: is as

is用于类型检查

as用于类型转换