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

时间:2012-10-19 00:08:46

标签: 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)
}

panic: runtime error: assignment to entry in nil map

1 个答案:

答案 0 :(得分:14)

  

Map types

     

未初始化地图的值为nil

     

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

     

nil地图相当于空地图,但不包含任何元素   加入。