配列は、単に値を順番に並べて管理するだけで、保管する値は数字で指定し取り出しました。が、数字ではわかりにくい、名前をつけて管理できたほうがいい、というような場合もあります。
そんな場合に用いられるのが「
辞書(Dictionary)」です。辞書は、「
キー」と呼ばれる値を使って管理します。それぞれの値には、インデックス番号の代わりにキーが付けられており、キーを指定して値を取り出したり変更したりするのです。
●辞書の作成var 変数 : [タイプ : タイプ] = [タイプ : タイプ]()
var 変数 : [タイプ : タイプ] = [キー1:値1 , キー2:値2 , ……]
●値へのアクセス変数 = 辞書 [キー]
辞書 [キー] = 値
●for-inによる繰り返し処理for (変数1 , 変数2) in 辞書 {
……繰り返し処理……
}
辞書は、
[]で2つのタイプを指定します。これは、キーと値のタイプを指定します。例えば、StringのキーでInt型の値を保管するならば、
[String:Int]というように指定をします。そのまま、
[String:Int]()を変数に代入すれば、値が何もない空の辞書が作成されます。
辞書は配列と異なり、最初に決まった数の保管場所を用意する必要はありません。キーを指定して値を保管すれば、そのキーが辞書に追加されます(既に同じキーがあれば、その値が変更されます)。
for-inは、配列と微妙に使い方が異なります。
for の後に、
(変数1, 変数2)というようにタプルで変数を用意します。これにより、辞書から取り出した要素のキーと値をそれぞれの変数に代入します。
下に、実際の利用例を挙げておきましょう。3教科の点数を辞書にまとめ、そこから要素を取り出して合計を計算しています。実行すると、値を取り出すごとに
"add 〇〇"とキーが出力され、最後に合計が表示されます。