Swift の Dictionary で nil を扱う

  • 14
    Like
  • 0
    Comment
More than 1 year has passed since last update.

目的

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 を直接設定したキーは消滅しています。

[詳細] http://ez-net.jp/article/1C/t1D5_SZN/hZ0evGOf9-uc/