導入
実際のデータは、スライスとマップを組み合わせて表します。「複数人ぶんの、名前と点数のまとまり」を作ってみましょう。
説明
マップを要素に持つスライスで、表のようなデータを表現できます。
package main
import "fmt"
func main() {
people := []map[string]string{
{"name": "田中", "city": "東京"},
{"name": "鈴木", "city": "大阪"},
}
for _, p := range people {
fmt.Printf("%s さんは %s 在住\n", p["name"], p["city"])
}
}
[]map[string]string… 「マップのスライス」。1行が1人ぶんのマップに対応します。for _, p := range peopleで1人ずつ取り出し、p["name"]でその人の値を引きます。
実行結果:
田中 さんは 東京 在住
鈴木 さんは 大阪 在住
このように「並び(スライス)」と「対応表(マップ)」を組み合わせれば、たいていのデータは表せます。とはいえ、次章で学ぶ 構造体 を使うと、こうしたデータをもっと安全で読みやすく書けます。
やってみよう
people に3人目 {"name": "佐藤", "city": "名古屋"} を足すと、ループがそのまま3人ぶん回ります。データを足しても処理のコードを変えずに済むのが、ループで回すことの利点です。