Menu
Coddy logo textTech

オプショナルとは

CoddyのSwiftジャーニー「基礎」セクションの一部。レッスン 11/86。

変数にまったく値がない場合があります。Swiftでは、値がないことをoptionalを使って表します。optionalは「値があり、それはxに等しい」または「値がまったくない」と示します。

optionalを宣言するには、型の後に疑問符 ? を追加します:

var nickname: String? = "Alex"
var age: Int? = nil

上の例では、nickname は値 "Alex" を保持し、agenil を保持しています。これは Swift で「値がない」ことを表す方法です。通常の変数は nil にできませんが、オプショナルはできます。

optional は、何かが入っているかもしれないし、空かもしれない箱だと考えてください。中身を使う前に、実際に何かが入っているかどうかを確認する必要があります。これは Swift の重要な安全機能であり、予期しない欠損値によるクラッシュを防ぐのに役立ちます。

var score: Int? = 100
print(score) // Optional(100)

score = nil
print(score) // nil

値を持つ optional を出力すると、単に 100 ではなく Optional(100) と表示されることに注目してください。中にある実際の値にアクセスするには、optional をアンラップする必要があります。これは今後のレッスンで説明します。

challenge icon

チャレンジ

簡単

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()"
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン

自分で練習してみよう: Swiftプレイグラウンド