Swift入門メモ -Optional-
12 Optional
Optional
ではない型はnil
になり得ない決まり- あるデータが
nil
かどうか曖昧なままだと重大なエラーが起きやすいという傾向があるため(※よくわかってない)
var s: String s = nil // エラーになる
nil
になり得る型をOptional
にしなくてはいけない
var s: String? // Optionalにする s = nil // エラーにならない
Optional
型の場合は値を取り出すときに!
を付ける!
を付けてOptional
型の値を取り出すことをUnwrapする
という
let name: String? = "gawao" // let msg = "hello " + name // エラーになる let msg = "hello " + name! // hello gawao
Unwrap
する際は、必ず値がnil
ではないことを最初に確認する
let name: String? = "gawao" // if文でチェック if name != nil { let msg = "hello " + name! } // よく使うやり方 // 一時的にsにnameの値を入れる // 値が入ったら条件が真になる // 中が実行される if let s = name { let msg = "hello " + s // 値が入るのはわかっているので「!」は不要 }
- 暗黙的に
Unwrap
されるOptional
型 - あるOptional型が
nil
になり得ないとわかっているときのみ使う - 初期化の時に一瞬
nil
になるが、そのあとは値をずっと保持するオブジェクトを扱う時に使ったり(※よくわかってない)
var label: String! label = "score" // すでにUnwrapされている println(label)
Optionalのところ殆ど理解してない。
アプリの開発をしていく過程で理解出来るか・・・