Swiftにオプショナル型(Optional)という考え方があり、これは値が空である(nil)を許容するかどうかを指定できます。
Swiftでオプショナル変数を定義・宣言する方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
// nilを許容しない var str: String // nilを許容する var str2: String? // エラーになる // str = nil // エラーにならない str2 = nil // nilを許容して初期化 var str3: String? = nil // こちらでも初期値はnilになっている var str4: String? |
このように nil を許容する場合は、型名のあとに ? をつけてあげる必要がある。
もちろん、一番下のようにnilで初期化することも可能。
オプショナル変数をアンラップ(unwrap)する
オプショナル変数は通常の変数と異なる。ので、通常の変数と同じように扱う場合はアンラップという一手間が必要になる。
1 2 3 4 5 6 7 8 |
var str: String? = "hoge" print(str) // Optional("hoge") print(str!) // "hoge" // エラーになる // print(str + "huga") // エラーにならない print(str! + "huga") // "hogehuga" |
Optionalのまま、hugaのStringを文字列結合しようとするとエラーになるので、str! でアンラップしてから結合させる必要がある。
ただし、Swiftでアンラップをすることは基本的に危険(バグや強制終了などの原因になる)なので注意しよう。(それはまた別の記事で触れてるよ