Swift 基本運算子 (Operators)
Swift 支援大多數標準 C 語言的運算子,並增加了一些強大的新特性以減少常見錯誤。
算術運算子 (Arithmetic Operators)
基本的加減乘除:
+(加)-(減)*(乘)/(除)%(餘數,取模) - 這裡要注意,Swift 的餘數運算子不能用於浮點數 (不像 Java)。浮點數求餘數需使用truncatingRemainder(dividingBy:)方法。
1 + 2 // 等於 3
5 - 3 // 等於 2
2 * 3 // 等於 6
10.0 / 2.5 // 等於 4.0
9 % 4 // 等於 1
Swift 的算術運算子預設不允許溢位 (Overflow)。如果你計算的結果超過了該型別能容納的範圍 (例如
Int.max + 1),程式會報錯。這是一種安全保護機制。如果你確實需要溢位行為,可以使用特殊的溢位運算子 (如 &+)。比較運算子 (Comparison Operators)
用於比較兩個值,回傳 Bool 值 (true 或 false)。
==(等於)!=(不等於)>(大於)<(小於)>=(大於等於)<=(小於等於)
1 == 1 // true
2 != 1 // true
2 > 1 // true
邏輯運算子 (Logical Operators)
用於組合多個布林值。
!(NOT,非)&&(AND,且)||(OR,或)
let allowedEntry = false
if !allowedEntry {
print("ACCESS DENIED")
}
區間運算子 (Range Operators)
這是 Swift 非常方便的一個特性,常配合迴圈 for-in 使用。
閉區間運算子 (a...b)
包含 a 和 b,以及它們之間的所有值。
for index in 1...5 {
print("\(index) * 5 = \(index * 5)")
}
// 輸出 1 到 5 的乘法表
半開區間運算子 (a..<b)
包含 a,但不包含 b。這在處理陣列 (Array) 這種從 0 開始且不包含長度索引的情況特別有用。
let names = ["Anna", "Alex", "Brian", "Jack"]
let count = names.count
for i in 0..<count {
print("第 \(i + 1) 個人是 \(names[i])")
}
單側區間運算子 (One-Sided Ranges)
你可以省略一邊的值,讓區間往該方向盡可能延伸。
for name in names[2...] {
// 從索引 2 開始直到陣列結束
print(name)
}
// 輸出 Brian, Jack