オプショナルとは
CoddyのSwiftジャーニー「基礎」セクションの一部。レッスン 11/86。
変数にまったく値がない場合があります。Swiftでは、値がないことをoptionalを使って表します。optionalは「値があり、それはxに等しい」または「値がまったくない」と示します。
optionalを宣言するには、型の後に疑問符 ? を追加します:
var nickname: String? = "Alex"
var age: Int? = nil上の例では、nickname は値 "Alex" を保持し、age は nil を保持しています。これは Swift で「値がない」ことを表す方法です。通常の変数は nil にできませんが、オプショナルはできます。
optional は、何かが入っているかもしれないし、空かもしれない箱だと考えてください。中身を使う前に、実際に何かが入っているかどうかを確認する必要があります。これは Swift の重要な安全機能であり、予期しない欠損値によるクラッシュを防ぐのに役立ちます。
var score: Int? = 100
print(score) // Optional(100)
score = nil
print(score) // nil値を持つ optional を出力すると、単に 100 ではなく Optional(100) と表示されることに注目してください。中にある実際の値にアクセスするには、optional をアンラップする必要があります。これは今後のレッスンで説明します。
チャレンジ
簡単numberを受け取り、そのnumberがoptionalとして表示された場合にどのように見えるかを示すStringを返す関数 createOptional を記述してください。
重要: この関数は String を返します。optionalのように見えるテキストを記述するのであり、実際のoptional値を返すわけではありません。
値を含むoptionalをprintすると、Swiftでは Optional(value) の形式で表示されます。
関数構文の確認: Swiftでは、値を返す関数は -> 矢印で戻り値の型を指定し、return キーワードで結果を返します。例:
func myFunction(param: Int) -> String {<br> return "result"<br>}
文字列補間を使用して戻り値の文字列を構築できます: "Optional(\(value))"。\(value) の部分はnumberを文字列に直接挿入します。
パラメーター:
value(Int): optional形式でラップするnumber
戻り値: 指定されたnumberが value である、Optional(value) 形式のString。
例: 入力が 100 の場合、"Optional(100)" を返します。
自分で試してみよう
func createOptional(value: Int) -> String {
// 本物のオプショナルではなく、オプショナルのように見えるStringを返す
// 文字列補間を使って括弧の間に数値を挿入する
return "Optional()"
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: Swiftプレイグラウンド