Optional Value を理解する

 

オプショナル値とは何か?

 

オプショナル値とはnilを入れることができる型のことを言います。

 

 

逆にいうとオプショナル値ではない変数にnilを入れるとエラーが出ます。

 

例えば 

var string1 = "roku"

var num: Int = Int(string1) 

の場合もしString からIntに変換を失敗した場合はnumにはnilが入ることになります。

 

ということはnumという変数にnilが入るかもしれないということはオプショナル値として扱わなければいけません。

 

オプショナル値としての変数の宣言の仕方

 

?を変数の型の後ろにつけます。例えば

 

var num: Int? = Int(string1)のように書きます。こうすることでこの変数にnilが入ったとしてもエラーは出ません。

 

var num: Int? = Int(string1)= これをオプショナル値でラップされていると言います。

 

プログラマーがnilが入らないことを保証して(nilが入る可能性があったとしても)変数を宣言することをアンラップすると言います。

 

アンラップの仕方

var 変数名: データ型! =初期値

 

num! + 10 // アンラップしているので計算ができる。パソコンにこのnumにはnilが入りませんよと言っているようなものです。

 

どうしてオプショナル値が必要なのか?

 

nilという値を扱うと想定していた処理ができない場合がある。

エラーには基本的に2つの種類がある

 

コンパイルエラー  間違ったコードを解析してエラーーが生じること

ランタイムエラー  Xcodeで解析はできるが、プログラム実行時に起こるエラー。

 

このランタイムエラーを減らすためにオプショナル値は使われている。