1.4.Swift 3常用操作符

2018-12-25  本文已影响0人  CDLOG

赋值操作符

等号右边的值赋值给等号左边的变量:

//: #### 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 += 1和b -= 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)
上一篇 下一篇

猜你喜欢

热点阅读