package main
import "fmt"
type Hoge struct {
Name string
}
type HogeMap map[string]*Hoge
func hoge() (h HogeMap) {
h["aaa"] = &Hoge{
Name: "aaa",
}
return
}
func main(){
fmt.Printf("%v", hoge())
}
panic: assignment to entry in nil map
goroutine 1 [running]:
main.hoge(...)
/workspace/Main.go:12
main.main()
/workspace/Main.go:19 +0x74
名前付き変数はポインタを初期化しない。
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
package main
import "fmt"
type Hoge struct {
Name string
}
type HogeMap map[string]*Hoge
func hoge() HogeMap {
h := HogeMap{}
h["aaa"] = &Hoge{
Name: "aaa",
}
return h
}
func main(){
fmt.Printf("%v", hoge())
}
var hoge HogeMap
でも一緒