Optional型変数の使い方
nilを値として持つことがある変数をオプショナル型の変数といいます。
|
1 2 3 4 5 |
var hoge : Int = 0 //nilが入らない var fuga : Int? = 0 //nilが入る場合がある var piyo : Optional //fugaと同義。 hoge = nil fuga = nil //こっちはエラーになる |
Int?
は
Optional
のシンタックスシュガー
Optional型から値を取り出す(Unwrap)
Int?型はInt型では無いため、それぞれ演算できないし、Int?型変数からInt型変数への代入もできません。
演算や代入を行いたい場合、オプショナル型からUnwrapしてから行います。
Unwrapするには変数の後ろに”!”をつけます。
|
1 2 3 4 |
var fuga : Int? = 0 let ans1 : Int? = fuga + 10 //Unwrapしてないまま演算しようとしてエラー let ans2 : Int = fuga + 20 //Unwrapしてないからエラー let ans3 : Int = fuga! + 30 //OK |