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