赋值操作符
等号右边的值赋值给等号左边的变量:
//: #### 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)
网友评论