オプショナルとは
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")!)
とする必要がある。
コメント