動機
5年くらいSwiftやってるのに知らない文法に遭遇して愕然とした...
しかも導入されたの Swift 2.0 からだった...
もうSwiftチョットデキルって言えない...
となったので、まとめておきます。
for
+ where
for
の内側の if
で判定する代わりに、where
を使ってフィルタできます。
for i in 0...4 where i % 2 == 0 {
print(i) // 0, 2, 4
}
for
+ case
enum Result {
case success(Int)
case error
}
let results = [Result.success(10), .success(2), .error, .success(100)]
for case .success(let value) in results {
print(value) // 10, 2, 100
}
パターンマッチ
let results = [("OK", 200), ("Not found", 404), ("Bad request", 400), ("OK", 200)]
for case (let message, 200) in results {
print(message) // "OK", "OK"
}
範囲マッチ
let results = [("OK", 200), ("Not found", 404), ("Bad request", 400), ("OK", 200), ("Created", 201)]
for case (let message, 200..<300) in results {
print(message) // "OK", "OK"
}
何のためにやってるの?
for case 0...5 in -10...10 {
print("Hi!")
}
どうも ~=
演算が定義されているものでは何でも使えるっぽいです。
驚いた...