📚

Golang マップ

2021/07/15に公開

概要

  • マップは配列が基盤となっている
  • キーと値のペアコレクション

マップの宣言

初期化

nameScore := map[string]int{
    "ryo": 11,
    "taro":  45,
}
fmt.Println(nameScore)

出力

map[ryo:11 taro:45]

空のマップ作成

  • マップは動的である
nameScore := make(map[string]int)

項目の追加

nameScore["jiro"] = 18

項目へのアクセス

概要

  • 存在しないキーにアクセスしてもpanicにはならない
  • 存在しないキーにアクセスすると規定値がかえされる
fmt.Println(nameScore["jiro"])

存在チェック

score, exist := nameScore["yoshio"]
if exist {
    fmt.Println("yoshio's score is", score)
}

項目を削除

  • 存在しない項目を削除しようとしても、Goはpanicにならない
delete(nameScore, "yoshio")

マップ内ループ

nameScore := map[string]int{
    "ryo": 11,
    "taro":  45,
}
for name, score := range nameScore {
    fmt.Printf("%s\t%d\n", name, score)
}
  • _ 変数を使用すると項目を無視できる
for name, _ := range nameScore {
    fmt.Printf("%s\n", name)
}
GitHubで編集を提案

Discussion