Swift 入門 | 配列と辞書 | 辞書

配列は値を順番に並べて管理し、保存した値を数値のインデックスで取得する。数値よりも名前で管理するほうが便利な場合もある。

そのような場合に使うものが辞書(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) のようなタプルを指定する。辞書から取得した要素のキーと値が、それぞれの変数に代入される。

次に実際の使用例を示す。

let data:[String:Int] = ["国語":98,"数学":76,"英語":54]
var total = 0
for (key, val) in data {
    total += val
    println("add \(key)")
}
println("Total: \(total)")

3 科目の点数を辞書にまとめ、要素を取り出して合計を計算する。実行すると、値を取り出すたびにキーが add 〇〇 と表示され、最後に合計が表示される。