赋值运算符
let b = 10
var a = 5
a = b
//a现在等于
let (x, y) = (1, 2)
//现在 x 等于 1 , y 等于 2
数值运算符
1 + 2 // 等于 3
5 - 3 // 等于 2
2 * 3 // 等于 6
10.0 / 2.5 // 等于 4.0
hello, " + "world" // 等于 "hello, world
浮点数求余计算
8 % 2.5 // 等于 0.5
自加自减运算
var a = 0
let b = ++a // a 和 b 现在都是 1(先自增再返回)
let c = a++ // a 现在 2, 但 c 是 a 自增前的值 1(先返回再自增)
组合赋值运算符
var a = 1
a += 2 // a 现在是 3
比较运算符
1 == 1 // true, 因为 1 等于 1
2 != 1 // true, 因为 2 不等于 1
2 > 1 // true, 因为 2 大于 1
1 < 2 // true, 因为 1 小于2
1 >= 1 // true, 因为 1 大于等于 1
2 <= 1 // false, 因为 2 并不小于等于 1
“let name = "world"
if name == "world" {
println("hello, world")
} else {
println("I'm sorry \(name), but I don't recognize you")
}
// 输出 "hello, world", 因为 `name` 就是等于 "world”
三元条件运算
问题 ? 答案 1 : 答案 2
if question: {
answer1
} else {
answer2
}
let contentHeight = 40
let hasHeader = true
let rowHeight = contentHeight + (hasHeader ? 50 : 20)
// rowHeight 现在是 90
区间运算符
a...b定义一个包含从a到b的区间
a..b(不包含a,b)
for index in 1...5 {
println("\(index) * 5 = \(index * 5)")
}
// 1 * 5 = 5
// 2 * 5 = 10
// 3 * 5 = 15
// 4 * 5 = 20
// 5 * 5 = 25
let names = ["Anna", "Alex", "Brian", "Jack"]
let count = names.count
for i in 0..count {
println("第 \(i + 1) 个人叫 \(names[i])")
}
// 第 1 个人叫 Anna
// 第 2 个人叫 Alex
// 第 3 个人叫 Brian
// 第 4 个人叫 Jack
逻辑运算符
逻辑非(!a)
逻辑与(a && b)
逻辑或(a || b)