KDOC 519: Goのmapではキーの値が同じでも型情報が違えば別のものとして扱われる
この文書のステータス
- 作成
- 2026-02-22 貴島
- レビュー
- <署名>
概要
型が違えば同じ値であっても違うものとして扱われる。当然にも見えるが、直感的ではない状況に見えることもある。
package main
import "fmt"
type a string
type b string
func main() {
m := map[any]any{}
m[a("k")] = "v"
m[b("k")] = "v"
fmt.Printf("%#v", m)
}
map[interface {}]interface {}{"k":"v", "k":"v"}
出力した表示上は型が表示されていないので、キーがかぶって登録されているように見える。
関連
なし。