しめ鯖日記

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

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

この記事では「The Swift Programming Language」を1から読んだ感想とか発見を書いてみようと思います。
「The Swift Programming Language」とはSwiftの公式ドキュメントでiBooksや下ページで見る事ができます。

The Swift Programming Language (Swift 2.1): About Swift

読んだ所

今回はType Castingという項目を読みました。

The Swift Programming Language (Swift 2.1): Type Casting

学んだこと

as?とas!

as?はキャスト失敗時にnilを返します。

class MyClass {}
class SubClass: MyClass {}

let value = MyClass()
let sub = value as? SubClass
print(sub) // nil

as!はキャスト失敗時はクラッシュします。

class MyClass {}
class SubClass: MyClass {}

let value = MyClass()
let sub = value as! SubClass // クラッシュ
print(sub)

switchとas

asはswitchと組み合わせる事ができます。

let any: Any = Double(0)
switch any {
case 0 as Int: print("int 0") // Int型の0の時に来る
case 0 as Double: print("double 0") // Double型の0の時に来る
case let int as Int: print("int \(int)") // Int型の時に来る
default: break
}

is

利用頻度は低いですが、型チェックはisでもできます。

let any: Any = Double(0)
print(any is Int) // → false
print(any is Double) // → true