はじめに タイトルどおりですが、気をつけましょうという話です。 不思議な現象だと思ったので簡単な記事にしました。 理由までは、わかってません。 ご存じの方は、教えて頂けると幸いです。 ソースを見ると乱数が使われているようです。 https://golang.org/src/runtime/hashmap.go?h=map#L231 詳しくはコメントを参照。 実験環境 go version go1.4.2 darwin/amd64 (つまりMac OS Xです) 実行コマンド go run main.go 実験 例えば、他の言語で言うsetみたいなのをしたかったとします。 package main import ( "fmt" ) func main() { set := map[int] bool{} set[175] = true set[119] = true set[450] = t