【Swift入門】型推論や型変換など型についてのまとめ

2020年11月28日

この記事の目次

型推論

型推論というのは型を予測して自動でつけてくれる機能のことです。

詳しく説明していきましょう。

まず、変数や定数には型というものがあります。

型は値の種類を分類するラベルのことで、変数や定数は型に応じた値だけ格納することができます。

例えばInt型の変数には整数の値、String型の変数には文字列の値だけ格納することができます。

型推論を使えば、最初に格納された値に応じて、変数や定数に自動的に型をつけてくれます。

今まで作った関数や定数は型推論を使って型をつけていました。

改めて型推論を使って変数を作ってみましょう。

新しくPlaygroundを作って、空にしておいてください。

型推論を使って変数を作ってみましょう。

var implicitInteger = 59

と記述しましょう。

このように記述した場合、初期値は『59』という整数なので、

変数『implicitInteger』の型は整数を表す『Int型』になります。

実際に『Int型』になっているか確かめてみましょう。

型を知りたい場合は

『type(of: 型を知りたい値)』

と記述します。

今回は変数『implicitInteger』の型を知りたいので

type(of: implicitInteger)

と記述しましょう。

typeは型を返すだけなので、printを使ってコンソールに出力しましょう。

print(type(of: implicitInteger))

と記述します。

この状態で実行してみましょう。

実行ボタンを押してください。

すると『Int』と表示されます。

確かに変数『implicitInteger』の型は『Int』でしたね。

もう一つ型推論の例を示しておきましょう。

次は文字列を表す『String型』でもやってみようと思います。

var implicitString = “りんご”

と記述しましょう。

このように記述した場合、初期値は『りんご』という文字列の値なので、

変数『implicitString』の型は文字列を表す『String型』になります。

実際に『String型』になっているのか確認してみましょう。

print(type(of: implicitString))

と記述しましょう。

この状態で実行してみます。

実行ボタンを押してください。

すると、『String』と表示されます。

確かに変数『implicitString』の型は『String』でしたね。

このようにSwiftには型推論が備わっており、わざわざ型を指定しなくても良いので楽ですね。

明示的な型

型推論ではなく、明示的に型をつけることもできます。

初期値を指定したくない場合や、その方がわかりやすいと感じる場合に明示的にします。

変数の型を明示的につける場合は

var 変数名: 型

といったように記述します。

実際に明示的に型をつけてみましょう。

新しくPlaygroundを作って空にしてください。

明示的にInt型の『explicitInteger』という名前の変数を作ってみましょう。

var explicitInteger: Int

と記述します。

また、明示的な型は初期値を割り当てることもできて、

var 変数名: 型 = 値

と記述します。

例えば『ぶどう』という文字列が格納されたString型の『explicitString』という名前の変数を作りたい場合は、

var explicitString: String = “ぶどう”

と記述します。

このように型は明示的につけることができます。

型変換

型変換とは変数や定数の型を別の型に変えることを言います。

型変換したい場合は

変換したい型(変換される変数)

と記述します。

実際に使ってみましょう。

新しくPlaygroundを作って空にしてください。

まず、String型とInt型のように異なる型は足し合わせることができないことを確認してみましょう。

var label = “横幅: “
var width = 80
print(label + width)

と記述してください。

printを使ってlabelとwidthの値を組み合わせてコンソールに『横幅: 80』と表示させたいのですが、labelはString型、widthはInt型といったように型が違うので組み合わせることができずエラーが出てしまいます。

なので型変換を使ってwidthをInt型からString型にしてエラーが出ないようにしましょう。

printの中を書き換えて、

print(label + String(width) )

と記述しましょう。

するとエラーが出なくなります。

この状態で実行してみると『横幅: 80』とコンソールに出力されるはずです。

実際にそうなるのか確かめてみましょう。

実行ボタンを押してください。

すると、意図した通りに『横幅: 80』とコンソールに出力されますね。

このように型変換を使うことで、異なる型を同じ型に揃えることができます。