しめ鯖日記

swift, iPhoneアプリ開発, ruby on rails等のTipsや入門記事書いてます

Swift再入門34 − The Swift Programming Languageを読んでみる

この記事では「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)
}