Swiftを習得していくとnilについて、引っかかる。
Swiftではオプショナル型と非オプショナル型がある。
簡単に記載するとオプショナル型はnilを許容、非オプショナル型はnilが扱えない。iOSではnilに対して操作することでアプリケーションが落ちてしまうことがあったそう。
これには色々と都合というものがあるのだろうし「郷に入っては郷に従え」である。
まずnilというは「虚」であり、「何にもない、何にもない、まったく何にもない...」ということである(古くてスイマセン)。
nilが扱えるオプショナル型にするには宣言時に?を付ける
let tS: String? = nil
またオプショナル型Stringと非オプショナル型Stringでは、そのままでは使用できない。
使用するにあたっては、オプショナル型Stringをアンラップしてやる必要がある。
アンラップするには、変数の後ろに!を付加する。イメージとしては、サランラップに包まれたオプショナル型のデータを取り外すイメージ。
let tS1: String? = "Hello"
let tS2: String = " World!"
print(tS1 + tS2) //----------NG(error:unwrapped)
print(tS1! + tS2) //----------OK
またオプショナル型データを扱う場合は、オプショナルバインディングを行うのが基本。
let tS: String? = nil
if let value = tS {
print(value) //-------何も実行されない...
}
次のような記載の仕方もある
let tS: String? = nil
print(tS ?? "This is nil") //-------This is nilと表示される