AppleのSwift解説を読んで、型変換について確認しよう。
数値型の変換
The Swift Programming Language (Swift 2): The Basics
Numeric Type Conversion
この場合は、Conversionと呼ぶんだね。
Int から Doubleへの変換
let a: Int = 2
let b: Double = Double(a)
Double から Intへの変換
let c: Double = 5.98
let d: Int = Int(c)
// d は 5になる
Type Casting
The Swift Programming Language (Swift 2): Type Casting
down casting。クラスをそのサブクラスに変換する場合。
Cocoa APIで配列を扱う場合に、Objective-Cの配列が型を明示していなかったのを引き継いでいるので、[AnyObject]が返ってくる。
その際に、型を指定したい場合、ダウンキャストする必要がある。
• as? を使う
as?を使うと、Optionalな値を返す。ダウンキャストができない場合はnilを返す。
• as! を使う
as!を使うと、ダウンキャストができない場合は、実行時エラーになる。
as!を使うのは、ダウンキャストが必ずうまくいくと分かっている場合に用いること。