オプショナル型についての基本的なところを備忘。
#オプショナル型って何
「!」とか「?」これがついてる型。
nilを表現するためのキーワード。
##nilってなに
nil = 何もない。
数字の0や "" 空文字とも違う。
ようするにnilを取り得る変数はオプショナル型にしましょうっってこと。
##nilの代入方法
var <変数名>: Int? = nil
Intに?をつけるとオプショナル整数型になります。
これで整数の他にnilも格納できるようになります。
初期値にnilを代入する必要もなく整数の設定も可能。
ただし、整数とオプショナル型の計算はできません。
例えば下記の計算はエラーになります。
整数型とオプショナル整数型の計算になるので。
var num: Int? = 1
print(num + 1)
じゃあどうすればいいんじゃ。
オプショナル整数型から整数型のみ取り出せばOKなのです。
方法は下記です。
var num: Int? = 1
print(num! + 1)
変数に!をつけてあげるとオプショナル整数型から整数型を取り出せるのです。
ですが、初期値いnilが入っているとアプリがクラッシュします。
!はオプショナル型の変数から整数型を取り出す時にnilではないぜ!!!と
宣言しているのです。
//クラッシュ例
var num: Int? = nil
print(num! + 1)
##でも毎回変数に!をつけるのめんどい・・・
Swiftには!を省略する方法もあります。
var num: Int! = 1
print(num + 1)
型宣言の際に?ではなく!をつけると後の変数に!をつける必要はありません。
しかしこれは変数にnilが入ってないことが確実の場合しか使えません。
*追記
オプショナル型の変数は宣言をした段階ではnilが入っている
もう少し詳しく使い方を知りたい方はこちらの記事がとても参考になります。
https://qiita.com/maiki055/items/b24378a3707bd35a31a8