KATUBLO
技術のメモ
Goの「assignment to entry in nil map」のエラーの原因と解決方法
2021-01-01

問題

Goである関数からmap型の変数(厳密な型はmap[string]interface{})を受け取ったあと、その変数にstring型をkey, valueとする値を代入しようとした所「assignment to entry in nil map」というエラー文と共にpanicになってしまいました。

原因

map型の場合はゼロ値がnilなので、次の様にmap型を宣言するとnilがmに代入される。

var m map[string]string

なので次の様に初期化しないと

m = map[string]string{}

keyを指定して値を代入したときにnil参照になってしまうようです。

m["hoge"] = "fuga" // error: assignment to entry in nil map

参考文献

広告:

別の記事で開発の生産性やQOL(Quality of Life)を向上させる上で買って良かったものを紹介しているので良かったらみてください。