6

如果我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

4

1 回答 1

17

地图类型

未初始化映射的值为nil

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

除了不能添加任何nil元素之外,地图等同于空地图。

是的。

于 2012-10-19T00:48:34.653 回答