Swift は、型安全(タイプセーフ)な言語です。タイプセーフな言語は、コードが扱う値の型が明らかで、String を期待するコード部分に誤って Int を渡すようなことができません。

Swift はタイプセーフであるため、コードをコンパイルする時に型をチェックし、適合しない型にエラーとして印を付けます。これにより、開発の早い段階でエラーを発見し、修正できるようになります。

型チェックは異なる型を扱うときのエラーを回避することに役立ちますが、宣言するすべての定数と変数に型を指定する必要はありません。型を指定しない場合、Swift は適切な型を推論 (type inference) します。型推論は、コードをコンパイルする時に値を検査して、コンパイラが自動的に式の型を推論できるようにします。

型推論によって、C や Objective-C と比較して、Swift では型宣言が必要となる場面が少なくなります。

型推論は、初期値とともに定数または変数を宣言する場合に特に役立ちます。定数または変数の宣言時にリテラル値を代入する場合のことです。(リテラル値とは、下の例にある 42 や 3.14159 のように、ソースコードに直接現れる値のことです。)

例えば、型を指定せずに新しい定数にリテラル値 42 を代入する場合、Swift はこの定数が Int であると推論します。なぜなら、整数のように見える数値で初期化しているためです。

let meaningOfLife = 42
// meaningOfLife は、Int 型と推論されます

同様に、浮動小数点リテラルの型を指定しない場合、Swift は Double と推論します。

let pi = 3.14159
// pi は Double 型と推論されます

Swift は、浮動小数点数の型を推論するとき、常に(Float でなく)Double を選択します。

整数と浮動小数点のリテラルを結合すると、Double 型と推論されます。

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

リテラル値の 3 には明示的な型の指定が無く、浮動小数点リテラルとの足し算があることから、Double 型と推論されます。


Portions of this page are translations based on work created and shared by Apple and used according to terms described in the Creative Commons Attribution 4.0 International License.