1. 简单赋值运算符
2. 复合赋值运算符
3. 比较运算符
4. 正号和负号运算符
5. 标准算术运算符
6. 取余运算符
7. 逻辑运算符
8. 三目条件运算符
9. 区间运算符
区间运算符有两种:
(1)...
闭区间运算符,a...b表示[a, b]。
(2)..<
半闭半开区间运算符,a..<b表示[a, b)。
几点说明:
1)当a和b都是整数时,a...b等价于a..<(b + 1)。
2)当a等于b时,a..<b表示空区间。
3)a不能大于b,否则会导致运行时错误。
4)如果b是负数,必须用小括号将其括起来,否则会导致编译错误。
(5...8).forEach { print($0) }
// 当a和b都是整数时,a...b等价于a..<(b + 1)
(5..<9).forEach { print($0) }
// 当a等于b时,a..<b表示空区间
(5..<5).forEach { print($0) }
// a不能大于b
// 9...8
// a不能大于b
// 9..<8
// 如果b是负数,必须用小括号将其括起来
// -5...-2
// 如果b是负数,必须用小括号将其括起来
// -5..<-2
// 如果b是负数,必须用小括号将其括起来
-5...(-2)
-5..<(-2)
/*
半闭半开区间运算符在遍历数组时比较有用,因为数组元素的索引是从0开始的。
*/
let array = ["Swift", "Java", "Kotlin", "Objective-C"]
for i in 0..<array.count {
print("\(array[i])")
}
/*
调用区间的contains(_:)方法可以判断区间内是否包含参数指定的元素。
*/
(5..<9).contains(8)
(5..<9).contains(9)
/*
访问区间的isEmpty属性可以判断区间是否为空。
*/
(5..<9).isEmpty
(5..<5).isEmpty
/*
访问区间的count属性可以取得区间的元素个数。
*/
(5..<9).count
(5..<5).count
10. NilCoalescing运算符
NilCoalescing运算符用??表示,其语法格式为:a ?? b,对应的运算规则为:如果a为nil,返回b的值;如果a不为nil,返回a包装的实际值。
因此,a ?? b等同于:a == nil ? b : a!。其中,a总是可选类型,b的类型必须与a包装的实际值的类型保持一致。
var i: Int? = 13
i ?? 18
i = nil
i ?? 18
let defaultColor = "red"
var userDefinedColor: String?
var colorToUse: String
colorToUse = userDefinedColor ?? defaultColor
userDefinedColor = "blue"
colorToUse = userDefinedColor ?? defaultColor
/*
NilCoalescing运算符是短路运算符,也就是说,对于a ?? b,如果a不为nil,将不再计算b。
*/
func make() -> Int {
print("函数make()被调用了")
return 18
}
// i = 5
i = nil
i ?? make()
网友评论