额发现还是要写很多章,因为内容太多导致快速笔记也很多…
除了在不同语言中通用的运算符代表的功能,swift还对运算符进行了改进,例如使用运算符后的结果会被自动检测并禁止溢出,以此来避免保存变量时由于变量大于或小于其类型所能承载的范围时导致的异常结果。当然,swift允许溢出运算符实现溢出。
swift还提供区间运算符,例如 a.. 或
a...b
。
本章节只描述基础运算功能实现,高级运算符、自定义运算符、自定义类型的运算符重载等有专门章节说明。
-a
a + b
a ? b : c
赋值:=
加法:+
减法:-
乘法:*
除法:/
求余:%
复合运算:+= -= 等等
等于:==
大于:>
小于:<
不等于:!=
大于等于:>=
小于等于:<=
三元运算符:a ? b : c // a是表达式,表达式true则b,false则c
空合运算符:a ?? b
a为可选类型,如果a含值则返回a含的值,如果不含值则返回b,b的数据类型和a含值类型一样
let defaultColorName = "red"
var userDefinedColorName: String? //默认值为 nilvar colorNameToUse = userDefinedColorName ?? defaultColorName
// userDefinedColorName 的值为空,所以 colorNameToUse 的值为 "red"userDefinedColorName = "green"
colorNameToUse = userDefinedColorName ?? defaultColorName
// userDefinedColorName 非空,因此 colorNameToUse 的值为 "green"
区间运算符:a … b
for index in 1...5 {print("\(index) * 5 = \(index * 5)")
}
// 1 * 5 = 5
// 2 * 5 = 10
// 3 * 5 = 15
// 4 * 5 = 20
// 5 * 5 = 25
半开区间运算符
let names = ["Anna", "Alex", "Brian", "Jack"]
let count = names.count
for i in 0..print("第 \(i + 1) 个人叫 \(names[i])")
}
// 第 1 个人叫 Anna
// 第 2 个人叫 Alex
// 第 3 个人叫 Brian
// 第 4 个人叫 Jack
单侧区间
for name in names[2...] {print(name)
}
// Brian
// Jackfor name in names[...2] {print(name)
}
// Anna
// Alex
// Brianfor name in names[..<2] {print(name)
}
// Anna
// Alex
swift中运算符的使用类似python中的运算符使用,字符串可以+
元祖拆解方式也类似
负数前面直接添加 -
号即可
元组长度相同、元素相同才可以比较,且是逐值比较的,直到发现有两个值不等时停止,例如:
(1, "zebra") < (2, "apple") // true,因为 1 小于 2
(3, "apple") < (3, "bird") // true,因为 3 等于 3,但是 apple 小于 bird
(4, "dog") == (4, "dog") // true,因为 4 等于 4,dog 等于 dog
Swift 标准库只能比较七个以内元素的元组比较函数
swift 逻辑操作符是左结合,意味着多元逻辑运算复合表达式中,计算顺序从左到右;此外也可以使用括号来划定优先级
本节完。