はぐれエンジニア 純情派

主にOSXやiOSの開発ネタ

Apple の Swift をマイペースに学ぶ Langage Guide編 (13)

型安全と型推論

Swiftは型安全な言語。

型安全な言語は、型を明確にコーディングすることを推奨します。

String型を期待したコードに、誤ってInt型を代入することが出来ない。

 

Swiftはコンパイル時に型チェックを実行し、型の不一致をエラーとして知らせる。

これはエラーの早期発見、迅速な修正を可能にする。

 

型チェックは型の不一致によるエラーを防ぐ。

しかし、それは全ての変数(または定数)の宣言で型を明確する必要がある訳ではない。

型を指定しなければ、Swiftが適切な型を推論する。

型推論コンパイル時に行われる。コンパイラは初期値から型を推測する。

 

Swiftが必要とする型宣言はCやObjective-Cよりも少ない。

変数や定数が型指定されるのは、むしろ開発者自身の為と言える。

 

初期値を用いた変数(または定数)の宣言時、型推論は非常に便利です。

よく変数の宣言時に直値を代入するように記述されます。

 

例えば、新しい定数に42を代入する。すると、整数に見える事からSwiftはInt型と推測する。

let meaningOfLife = 42
// meaningOfLife はInt型と推論される

同様に少数値を用いるとSwiftはDouble型と推測する。

let pi = 3.14159
// pi is inferred はDouble型と推論される

少数値が初期値の場合はSwiftはFloatよりもDoubleを選択する。


もし、整数と少数を混合した表記をした場合、Doubleと推論される。

let anotherPi = 3 + 0.14159
// anotherPi もDouble型と推論される

3の表記そのものは明確に型を持っていない。そして少数値が加算されていることから、適切な型はDoubleとなる。