LoginSignup
0
1

More than 3 years have passed since last update.

[Golang]連想配列やハッシュ的なキー管理で定番の、マップの使い方サンプル

Last updated at Posted at 2019-08-09

いきなりサンプル

Go:mapの宣言と代入を別々に
package main
import "fmt"

func main() {

    m := make(map[string]int)
    m["maeda"] = 165
    m["yamada"] = 175
    m["suzuki"] = 180

    fmt.Println(m) // => map[yamada:175 suzuki:180 maeda:165]
}
Go:mapの宣言と代入を同時に
package main
import "fmt"

func main() {

    m := map[string]int{"maeda":165, "yamada":175, "suzuki":180}

    fmt.Println(m) // => map[maeda:165 yamada:175 suzuki:180]
}

注意! v1.11系までは出力順がランダムに

実行していて気づいたのですが、どうやら実行する度に出力されるmapの順番が違います。

Go:実行の度に、mapの出力結果が変わる?
package main
import "fmt"

func main() {

    m := map[string]int{"maeda":165, "yamada":175, "suzuki":180}
    m["oda"] = 190

    fmt.Println(m)
}
実行1回目
map[yamada:175 suzuki:180 oda:190 maeda:165]
実行例2回目
map[oda:190 maeda:165 yamada:175 suzuki:180]
実行例3回目
map[maeda:165 yamada:175 suzuki:180 oda:190]

こんな感じです。
基本的に、mapはキーの名前を指定して値を参照する、といった使い方になるかと思うので、それほど大きなトラブルにはならないかと思いますが、なんかもやっとしますね。笑

追記)
なお、コメントでご指摘頂いた通り、v1.12系からは出力が固定順に変更されているようです。

0
1
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1