オプショナルとは
CoddyのSwiftジャーニー「基礎」セクションの一部 — レッスン 11/86。
時には、変数に値が全く含まれないことがあります。Swiftでは、値の欠如をオプショナル(optionals)を使用して表現します。オプショナルは、「値が存在し、それはxに等しい」または「値が全く存在しない」ということを表します。
オプショナルを宣言するには、型名の後にクエスチョンマーク ? を付けます:
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値を持つオプショナルを出力すると、単なる 100 ではなく Optional(100) と表示されることに注意してください。中にある実際の値にアクセスするには、オプショナルをアンラップする必要があります。これについては、今後のレッスンで説明します。
チャレンジ
簡単数値を受け取り、その数値がオプショナルとして出力されたときにどのように見えるかを示す文字列を返す関数 createOptional を作成してください。
値を含むオプショナルを出力すると、Swiftはそれを Optional(value) という形式で表示します。
関数の構文の復習: Swiftでは、値を返す関数は -> 矢印を使用して戻り値の型を指定し、return キーワードを使用して結果を返します。例:
func myFunction(param: Int) -> String {<br> return "result"<br>}
文字列補間を使用して戻り値の文字列を構築できます:"Optional(\(value))" — \(value) の部分は、数値を文字列に直接挿入します。
パラメータ:
value(Int): オプショナル形式でラップする数値
戻り値: Optional(value) 形式の文字列。ここで value は提供された数値です。
例: 入力が 100 の場合、"Optional(100)" を返します。
チートシート
Swiftでは、オプショナル(optionals)は値の欠如または存在を表します。オプショナルは、値が含まれているか、nilであるかのいずれかです。
オプショナルを宣言するには、型の後に疑問符 ? を付けます:
var nickname: String? = "Alex"
var age: Int? = nil通常の変数は nil になることはできませんが、オプショナルは可能です。「値がない」ことを表すには nil を使用します:
var score: Int? = 100
score = nil値を持つオプショナルを出力すると、Swiftはそれを Optional(value) として表示します:
var score: Int? = 100
print(score) // Optional(100)
score = nil
print(score) // nil自分で試してみよう
func createOptional(value: Int) -> String {
// ここにコードを記述してください
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。