Go:使用自动返回值初始化地图

atp*_*atp 4 go

如果我map[string]string在函数定义中声明一个返回值,我是否必须在使用它之前制作它,就像我在函数体中声明它一样?http://play.golang.org/p/iafZbG2ZbY

package main

import "fmt"

func fill() (a_cool_map map[string]string) {
    // This fixes it: a_cool_map = make(map[string]string)
    a_cool_map["key"] = "value"
    return
}
func main() {
    a_cool_map := fill()
    fmt.Println(a_cool_map)
}
Run Code Online (Sandbox Code Playgroud)

panic: runtime error: assignment to entry in nil map

pet*_*rSO 14

地图类型

未初始化的地图的价值是nil.

使用内置函数创建一个新的空映射值make.

nil地图相当于不同之处在于可以添加没有元素的空映射.

是.