Swift入門メモ -Optional-

12 Optional

dotinstall.com

  • 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のところ殆ど理解してない。
アプリの開発をしていく過程で理解出来るか・・・