英文:
Go: Initialize a map with automatic return values
问题
如果我在函数定义中声明了一个map[string]string
的返回值,我是否必须在使用之前创建它,就像我在函数体中声明它一样?http://play.golang.org/p/iafZbG2ZbY
package main
import "fmt"
func fill() (a_cool_map map[string]string) {
// 这样修复: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
英文:
If I declare a map[string]string
return value in a function definition, do I have to make it before using it, just like if I had instead declared it in the function body? 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
得分: 19
> 地图类型
>
> 未初始化的地图的值为nil
。
>
> 使用内置函数make
可以创建一个新的空地图值。
>
> nil
地图与空地图等效,只是不能添加元素。
是的。
英文:
> Map types
>
> The value of an uninitialized map is nil
.
>
> A new, empty map value is made using the built-in function make
.
>
> A nil
map is equivalent to an empty map except that no elements may be
> added.
Yes.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论