Mapとは
キーと値を組み合わせたデータ構造
RubyでいうところのHashみたいなところか…?って認識
Mapの作り方
空のMapの作り方 その1
import ("fmt")
func main() {
var m map[string]int = map[string]int{}
fmt.Println(m)
}
実行結果
map[]
空のMapの作り方 その2
import ("fmt")
func main() {
m := map[string]int{}
fmt.Println(m)
実行結果
map[]
空のMapの作り方 その3
import ("fmt")
func main() {
m := make(map[string]int)
fmt.Println(m)
}
実行結果
map[]
中身のあるMapの作り方
中身のあるMapの作り方
import ("fmt")
func main() {
var m map[string]int = map[string]int{"hoge": 10, "fuga": 20, "piyo": 30}
fmt.Println(m)
}
- キーと値をコロン
:
で繋いであげればOK - 要素の間にはカンマ
,
忘れずに入れてあげる
import ("fmt")
func main() {
var m map[string]int = map[string]int{
"hoge": 10,
"fuga": 20,
"piyo": 30,
}
fmt.Println(m)
}
改行するとこんな感じ
最後の要素にカンマ,
入れないといけないのだけ注意
実行結果
map[fuga:20 hoge:10 piyo:30]
中身のあるのMapの作り方 その2
import ("fmt")
func main() {
m := map[string]string{
"hoge": "hogehoge",
"fuga": "fugafuga",
"piyo": "piyopiyo",
}
fmt.Println(m)
}
実行結果
map[fuga:fugafuga hoge:hogehoge piyo:piyopiyo]
存在するMapに要素を追加する時
import ("fmt")
func main() {
m := map[string]int {
"hoge": 10,
}
}
m
に要素を追加したいときは
m["fuga"] = 20
m["piyo"] = 30
という感じで追加できる
make()で作ったMapに要素を追加する
m := make(map[string]int)
m["hoge"] = 10
m["fuga"] = 20
fmt.Println(m)
実行結果
map[fuga:20 hoge:10]
Mapの並び順(バージョン1.12以降)
1.11までは、生成順で表示されていまいしたが
1.12以降はキー順で返されるようになりました
例 1.11まで
import ("fmt")
func main() {
m := map[string]string{
"hoge": "hogehoge",
"fuga": "fugafuga",
"piyo": "piyopiyo",
}
fmt.Println(m)
}
実行結果
map[hoge:hogehoge fuga:fugafuga piyo:piyopiyo]
例 1.12以降
import ("fmt")
func main() {
m := map[string]string{
"hoge": "hogehoge",
"fuga": "fugafuga",
"piyo": "piyopiyo",
}
fmt.Println(m)
}
実行結果
map[fuga:fugafuga hoge:hogehoge piyo:piyopiyo]