ログアウト

辞書

辞書

・辞書のイメージ図

※上記例では、100, 90, 80といった値(value)に、国語, 数学, 英語というデータ名(key)をつけています。

配列で扱った添字の代わりに、任意でデータ名(key)をつけることができます。
このkeyは重複したものを入れることができません。

また、辞書は値が「オプショナル型※」になります。
 ※次の節にて詳しい説明があります。今の段階では、「何も無い」値も入れることができ、値を扱う時に専用の処理が必要、とだけ認識してください。

宣言と代入 let/var 辞書名: [keyの型: valueの型] = [key: value]

 辞書も他と同様、letとvarを正しく使い分けましょう。
また、上記をPlaygroundで実行すると、出力時に順番がランダムになっています。
配列では順に添字がつくため「順序」がありましたが、辞書は任意のkeyによって管理するため順序がありません。

値の取り出し 辞書名[key]

ここで試しに、宣言時にどこかで重複するkeyを入れてみて、エラーになることを確認しましょう。

また、値を取り出す時(メモリに格納された値を取り出す時)は、「Optional型の値を取り出す時」の処理を行わなければいけません。(処理の1つ:末尾に!をつける)

こちらは次節にて詳しく行いますので、辞書から値を取り出す時は特殊な処理が必要なんだな、と認識しておいてください。

空の辞書の宣言 var 辞書名 = [keyの型: valueの型]()

また、上記を省略せずに書くと var dic: [String:String] = [String:String]()となります。型推論が行われていますね。

 

以下、辞書の扱いに関する書き方となります。ぜひPlaygroundで試してみてください。
見やすさのため、value = 値、 key=キーとしています。

要素の追加

・キーがすでに既存のものであれば更新、なければ新規追加

辞書名.updateValue(値, forKey: キー)

要素の個数を調べる

・個数を返す

辞書名.count

・空かどうかを返す

辞書名.isEmpty

要素の削除

・キーを指定して削除

辞書名.removeValue(forKey: キー)
辞書名[キー] = nil