この記事では「The Swift Programming Language」を1から読んだ感想とか発見を書いてみようと思います。
「The Swift Programming Language」とはSwiftの公式ドキュメントでiBooksや下ページで見る事ができます。
The Swift Programming Language (Swift 2.1): About Swift
読んだ所
今回はPatterns
という項目を読みました。
The Swift Programming Language (Swift 2.1): Patterns
学んだこと
switch文の書き方
Switch文ですが下のようにIntとRangeで比較ができます。
let value = 1 switch value { case -2...2: break default: break }
これはSwitchが~=にマッチするかで見ているからです。
-2...2 ~= 1
実際にMyClassとIntの~=を定義するとSwitchの候補に使えるようになります。
class MyClass {} func ~=(left: MyClass, right: Int) -> Bool { return true } switch 1 { case MyClass(): break default: break }
case文
Swiftではcaseを使う事でEnumの中身を取り出す事ができます。
let someOptional: Int? = 42 if case .Some(let x) = someOptional { print(x) }
x?でも同様の事ができるようです。
if case let x? = someOptional { print(x) }