【學習】重學Swift5-運算子&流程控制
阿新 • • 發佈:2022-02-18
二、運算子和表示式
+ - * \ = // 溢位 &+ &- &* // 合併空值運算子 a??b // a必須是一個可選型別。b必須與a的儲存型別相同 與(a = nil ? a! : b)相同 // 區間運算子 a...b // 閉區間運算子 從a到b 包含ab a..<b // 半開區間運算子 從a到b 不包含b a... ...a ..<a // 單側區間 // 倒敘索引 reversed() // comparable區間 "a"..."z" // 位運算 與其他語言一致 /* ~ 位取反運算子 所有位數取反 & 位與運算子 都是1時返回1 | 位或運算子 有一個是1時返回1 ^ 位異或運算子 對應位不相同返回1 << >> 左移、右移運算子 左移翻倍,右移減半 */ // 運算子過載
三、流程控制
-
for-in
for i in 0..3 { } for c in "hello world" { } let names = ["zhangsan", "lisi", "wangwu"] for name in names { } let numberOfLegs = ["spider" : 8, "ant" : 6, "cat" : 4] for (animal, legs) in numberOfLegs { print("\(animal) have \(legs) legs") } for t in numberOfLegs { print(t.0, t.1) } for _ in 1...5 { anser *= 4 } // 分段 let minuteInterval = 5 for ticket in stride(from: 0, to: 50, by: minuteInterval) { print(ticket) } for ticket in stride(from: 0, through: 50, by: minuteInterval) { print(ticket) }
-
while
var count = 0 repeat { print(count) count += 1 } while count < 5
-
switch
// swift中 switch語句必須包含全部內容,並且沒有隱式貫穿 // swift case中可以匹配多個值,寫成多行,只需用逗號隔開 case "a","A": // swift中case還可以進行區間匹配 case 1..<5: // swift中case還可以進行元組匹配 // swift中case還可以進行值繫結 case (let x, 0): // swift中case還可以進行where檢查 case let(x,y) where x == y:
-
控制轉移
// continue // break // fallthrough 可以實現oc switvh中的隱式貫穿 // return // throw // 語句標籤
-
guard
guard true else { print("when false do something") } print("when true do something")
-
檢查API可用性
if #available(iOS 10, macOS10.12, *) { } else { }