
スウィフト – オプショナル型
Swift 4には、値の不在を処理するOptionals型も導入されています。オプションは、「値があり、それはxと等しい」または「全く値がない」のいずれかであると判定します。
オプショナル型とは変数にnilの代入を許容するデータ型で 反対に非オプショナル型はnilを代入できません。 オプショナル型の変数にはデータ型の最後に「?」か「!」をつけます。
ここにInteger宣言があります。
var おそらくInt: Int?
ここにはString宣言があります。
var おそらくStr: String?
上記の宣言はnilに初期化することと等価です。これは無価値を意味します –
var おそらくStr: String? = nil
スウィフト4で選択肢がどのように機能するかを理解するために、次の例を考えてみましょう。
var myString:String? = nil if myString != nil { print(myString) } else { print("myString has nil value") }
私たちが上記のプログラムをPLAYGROUNDで実行すると、次の結果が得られます。
myString has nil value
強制アンラッピング
変数をオプションとして定義した場合、 この変数から値を取得するには変数をアンラップする必要があります。 これは、変数の最後に感嘆符を付けることを意味します。
簡単な例を考えてみましょう。
var myString:String? myString = "Hello, Swift 4!" if myString != nil { print(myString) } else { print("myString にはニルがあります") }
私たちが上記のプログラムをPLAYGROUNDで実行すると、次の結果が得られます。
Optional("Hello, Swift 4!")
次に、アンラッピングを適用して変数の正しい値を取得しましょう。
var myString:String? myString = "Hello, Swift 4!" if myString != nil { print( myString! ) } else { print("myString にはニルがあります") }
私たちが上記のプログラムをPLAYGROUNDで実行すると、次の結果が得られます。
Hello, Swift 4!
自動アンラップ
オプションの変数は、疑問符の代わりに感嘆符( ! )を使用して宣言することができます。
そのようなオプションの変数は自動的にアンラップされ、割り当てられた値を取得するために、変数の末尾にさらに感嘆符を使用する必要はありません。
簡単な例を考えてみましょう。
var myString:String! myString = "Hello, Swift 4!" if myString != nil { print(myString) } else { print("myString has nil value") }
私たちが上記のプログラムをPLAYGROUNDで実行すると、次の結果が得られます。
Hello, Swift 4!
オプションのバインド
オプションのバインディングを使用して、オプションに値が含まれているかどうかを確認し、
値がある場合は、その値を一時定数または変数として使用できるようにします。
if文のオプションのバインディングは次のとおりです。
if let constantName = someOptional { statements }
オプションのバインディングの使い方を理解するための簡単な例を考えてみましょう。
var myString:String? myString = "Hello, Swift 4!" if let yourString = myString { //letは定数です print("Your string has - \(yourString)") } else { print("Your string does not have a value") }
私たちが上記のプログラムをPPLAYGROUNDで実行すると、次の結果が得られます。
Your string has - Hello, Swift 4!