目的
Swift には nil を扱える Optional 型があります。
これを Dictionary 型の値として使うことで、Dictionary 型で nil の値を扱えるようになります。
定義
値の型として Optional 型を指定します。
var dict = Dictionary<String,String?>()
値の取得
値の取得は通常どおりです。
let value:String?? = dict["a key"]
- Dictionary の値として定義された型
String?
がさらに Optional でラップされて得られます。 - 指定したキーが存在しない場合は nil が得られます。
- 指定したキーの値が nil だった場合は Optional<String>() が得られます。
値の設定
通常の値は、通常どおりの方法で設定できます。
dict["key1"] = "STRING VALUE"
nil を設定したい場合は Optional の nil 値を設定します。
dict["key2"] = Optional<String>()
直接 nil を設定すると、指定したキーが Dictionary から消去されます。
キーの存在判定
通常どおりの方法で判定できます。
if let value = dict["a key"] {
}
- キーの値は Optional 型で得られます。
- Optional の nil が設定されている値も Dictionary 内に存在できます。
- nil を直接設定したキーは消滅しています。