見出し画像

この世でいちばんわかりやすいiPhoneアプリ開発のおはなし【オプショナルとは?】

「値が無い状態」を許容する

ここでは、ある企業の株価を追跡するプログラムを考えます。 株価は経過的に変化する値なので、変数として定義すべきです。

var stockPrice = 0.0

まだ、この企業は上場しておらず、株式は公開前なので、変数stockPriceの既定値は便宜的に0.0を設定しました。 ところが、このコードを見ただけでは「実際の株価がゼロ」なのか、それとも「未公開で株価がない」のかを判断することはできません。

Swiftプログラミングではnilキーワードを使って、「値が無い状態」を示すことができます。 ただし、この変数stockPriceの値をnilに変更しようすると、コンパイラはエラーを報告します。

var stockPrice = 0.0
stockPrice = nil   // error

これは、通常のデータ型として宣言された定数および変数は「値がない状態を許容しない」ことが原因です。 このコードは削除しておきます。

nilを許容する定数および変数を宣言するには、オプショナル と呼ばれる特殊なデータ型であることを明示します。 オプショナルであることを宣言するには、通常のデータ型名の後に疑問符?を追記します。

var stockPrice: Double? = 0.0
stockPrice = nil

変数stockPriceは「値がない状態」を許容するようになったので、既定値としてnilを設定できます。

var stockPrice: Double? = nil

なお、定数および変数の宣言時に「型がオプショナルである」ことを明示した場合、自動的に既定値はnilが設定されます。 そのため、= nilの記述は省略可能です。

var stockPrice: Double?
stockPrice     // nil

合わせて読もう

オプショナルから値を取り出す方法について、こちらのページで解説しています。Swiftに「なぜ、オプショナルという仕組みが存在するのか」を理解しましょう。

この記事が気に入ったらサポートをしてみませんか?