运算符

  1. 赋值运算符("=")用于值的传递,其结果是量值被赋了具体的值,相等运算符("==")则用于比较操作,其会返回一个Bool类型的逻辑值。
  2. 取余运算符("%")必须在整数间进行运算时使用
  3. 自增与自减运算符在Swift 2.0及之前版本可以使用,Swift 2.2版本后,基于代码可读性与减少歧义的考虑,移除了这两个运算符
  4. Swift语言中逻辑运算(逻辑与运算符“&&”、逻辑或运算符“||”、逻辑非运算符“! ”)的操作数必须为严格的Bool类型
  5. Swift中对于元组的比较操作,注意:首先要比较的元组中元素个数和对应位置的元素类型必须相同,其次元组中每一个元素必须支持比较运算操作。
  6. 条件运算符可以简化为:
var m = 3
var n = 6
if m > n {
  print("m>n")
} else {
  print("m<n")
}
// 与上面结果相同
print(m>n ? "m>n":"m<n")
  1. 空合并运算符
    可选值类型是Swift语言的一个独特之处,空合并运算符是针对可选类型而设计的运算符。首先来看一段示例代码:
var q: Int? = 8
var value: Int
if q != nil {
  value = q!
} else {
  value = 0
}

根据if语法简化,上面代码可写为:

var q: Int? = 8
var value: Int 
value = (q != nil)? q!:0

使用条件运算符改写后的代码变得十分简单,Swift语言中还提供了空合并运算符来更加简洁地处理这种Optional类型值的条件选择结果,空合并运算符由"??"表示,代码如下:

var q: Int? = 8
var value: Int 
value = q ?? 0

空合并运算符“? ? ”是一个二元运算符。其需要两个操作数,第一个操作数必须为一个Optional值,如果此Optional值不为nil,则将其进行拆包操作,并作为空合并运算的运算结果。如果此Optional值为nil,则会将第二个操作数作为空合并操作运算的结果返回。使用空合并操作符来处理有关Optional值的选择逻辑将十分方便。

  1. 区间运算符

在Objective-C语言中提供了NSRange这样一个结构体来描述范围,虽然直观了许多,但开发者在使用时需要构造NSRange实例,使用起来就略显繁琐。

  1. Swift中除了支持Range结构体来描述范围外,还提供了一个区间运算符来快捷直观地表示范围区间,示例如下:
// 创建范围 >=0 且 <= 10 的闭区间
var range1 = 0...10
// 创建范围 >=0 且 <10 的半开区间
var range2 = 0...<10

可以通过**"~="运算符来检查某个数字是否包含于范围中**,示例如下:

```swift
print(range1 ~= 8)     // 输出true