【Swift】オプショナルとは?アンラップとは?

スポンサーリンク

オプショナルとは

nilが入る可能性のあるデータ型のこと。
データ型の後ろに?を付けるとオプショナル型となる。
(データ型の後ろに!を付ける暗黙的アンラップ型というものもあるが、使うことは少ないのでここでは触れない)

var hoge1: Int?
var hoge2: String?

アンラップとは

オプショナルから値を取り出すこと。
オプショナル型の変数の後ろに!を付けるとアンラップされる。
中身がnilでないことが明らかな場合に使う。
変数の中身がnilの場合はエラーとなるので注意。

var hoge1: Int? = 100
var hoge2: String? = "hoge"
print(hoge1!) // 100\n
print(hoge2!) // hoge\n

なぜアンラップが必要なのか

たとえばprint(1 + Int("1"))はエラーとなる。
なぜなら、Int("1")はInt?型なのでIntとInt?の足し算となってしまうため。
IntとIntの足し算にするにはprint(1 + Int("1")!)とする必要がある。

コメント