Go言語 - マップ
rubyでいうところのハッシュ。
for rangeで取り出す場合は、キーのみと、キー&値のペアの取り出しができる。
キーを指定して値を読みだす場合、そのキーに対応する値が無い場合は二番目の戻り値がfalseになり、値(最初の戻り値)はゼロ値になる。
package main import ( "fmt" ) func main() { m := map[string]int { "foo" : 1, "bar" : 2, "baz" : 3, // } を改行する場合はカンマが必要 } // キーのみ取り出し for k := range m { fmt.Println(k) //-> foo, bar, baz(順番は不定) } // キーと値の取り出し for k, v := range m { fmt.Println(k, v) //-> foo, 1 ……(順番は不定) } // 値のないキーを指定 v := m["zzz"] fmt.Println(v) //-> 0 ゼロ値 // 二つ目の戻り値がbool,値が無い場合はfalse v, b := m["zzz"] fmt.Println(v, b) //-> 0 false // 値がある場合はtrue v, b = m["foo"] fmt.Println(v, b) //-> 1 true }