swift 4.x 基本运算符

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()

11. 运算符的优先级和结合性

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。