はじめに
先輩が書いたコードの中で、変数の型に「!」がついているものがあり「あれ?これってなんだっけ?」となったので備忘録としてメモします。
「!」がついた型の意味
var name:String!
「!」をつけて型を宣言した場合、nil が入るかもしれないが、取り出すときは nil ではない想定の変数となります。
そのため、アンラップが必要ありません。
しかし、変数にアクセスしたとき nil だった場合は例外がスローされるため注意が必要です。
「?」がついた型の意味
var name:String?
「?」をつけて型を宣言した場合、常に nil が入っていることを考慮しながら扱う必要がある変数となります。
そのため、if や guard などでアンラップする必要があります。
おわりに
まだまだ勉強中のため、間違っている箇所があればご指摘の程よろしくお願いいたします。