操作符,是一个编程语言中完成各种运算不可或缺的元素。Swift中的大部分操作符,都符合我们对各种运算的理解。因此,在这篇文档里,我们将带着大家快速过一遍Swift中的各种操作符,并对其中大家可能不太熟悉的部分,做一些特别的说明。

基本操作符(Basic operators)

赋值操作符

这个最简单,我们之前已经用过多次,等号右边的值赋值给等号左边的变量:

//: #### Basic assignment
let a = 20
var b = 10

基本算术运算操作符

let sum = a + b
let sub = a - b
let mul = a * b
let div = a / b
let mod = a % b

“Swift 3不再允许浮点数取模。例如:8 % 2.5这样的写法在Swift 3中将会报错。如果要对浮点数取模,只能这样: 8.truncatingRemainder(dividingBy: 2.5)。”

复合运算操作符

Swift还支持把赋值和算数运算符组合起来:

//: #### Compound assignment

b += 10 // b = b + 10
b -= 10 // b = b - 10
b *= 10 // b = b * 10
b /= 10 // b = b / 10
b %= 10 // b = b % 10

“Swift不会把数字自动转换成Bool类型。在需要Bool值的地方,你必须明确使用一个Bool变量。”

“Swift 3中不再支持自增(++)和自减(--)操作符,使用它们的前缀和后缀版本都会得到一个编译器错误。因此,需要+1/-1的时候,只能使用b += 1b -= 1来实现。”

比较操作符

Swift支持以下常用的比较操作:

//: #### Comparison
let isEqual     = sum == 10
let isNotEqual  = sum != 10
let isGreater   = sum >  10
let isLess      = sum <  10
let isGe        = sum >= 10
let isLe        = sum <= 10

除此之外,Swift还支持两个用于比较对象引用的操作符:Identity operator,它们用来判断两个操作数是否引用同一个对象,我们在后面讲到面向对象编程的时候,会进一步提到这两个操作符。

//: Identity operator

//===
//!==

三元操作符

/*
* if condition {
*     expression1
* }
* else {
*     expression2
* }
*
*/

let isSumEqualToTen = isEqual ? "Yes" : "No"

在Swift里,一些“日常”的if...else...判断,可以使用下面的三元操作符来替代:cond ? expr1 : expr2

Nil Coalescing Operator

这是一个Swift特有的操作符,用来处理和Optional有关的判断:

// opt != nil ? opt! : b

var userInput: String? = "A user input"
let value = userInput ?? "A default input"

如果opt是一个optional,当其不为nil时,就使用optional变量自身的值,否则,就使用??后面的“默认值”。

Range operator

闭区间range operator

我们用下面的方式表达一个包含begin和end的闭区间:begin ... end

//: Closed range operator
// begin...end

for index in 1...5 {
    print(index)
}

半开半闭区间range operator

我们用下面的方式表达一个[begin, end)的半开半闭区间:begin ..< end

//: Half-open range operator
// begin..<end [begin, end)

for index in 1..<5 {
    print(index)
}

逻辑运算符

Swift支持三种常用的逻辑运算:NOT,AND和OR。它们都返回一个Bool

//: #### Logic operator

let logicalNot = !isEqual
let logicalAnd = isNotEqual && isLess
let logicalOR  = isGreater  || (isLess && isLe)

What's next?

了解了常用的操作符之后,下一节,我们来看如何在Swift注释中,使用类似markdown格式的注释。Xcode以及Playground中都可以很好的识别这些注释,从而帮助开发者更好的理解和使用你的代码。

所有订阅均支持 12 期免息分期

¥ 59

按月订阅

一个月,观看并下载所有视频内容。初来泊学,这可能是个最好的开始。

开始订阅

¥ 512

按年订阅

一年的时间,让我们一起疯狂地狩猎知识吧。比按月订阅优惠 28%

开始订阅

¥ 1280

泊学终身会员

永久观看和下载所有泊学网站视频,并赠送 100 元商店优惠券。

我要加入
如需帮助,欢迎通过以下方式联系我们