nilについて



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と表示される