Golang中为什么需要先分配map才能存储数据
Golang中为什么需要先分配map才能存储数据
package main
import(
"fmt"
)
func main(){
var ages map[string]int // 声明 1
ages := make(map[string]int) // 声明 2
ages["Ujjwal"] = 32
fmt.Println(ages)
}
在阅读这本书时,我遇到了这样一句话:“你必须先分配映射,然后才能向其中存储数据。”。如果我们注释掉声明 2 并运行这段代码,会得到一个错误:“panic: assignment to entry in nil map”。而如果我们注释掉声明 1,代码就能顺利运行。我无法理解“你必须先分配映射,然后才能向其中存储数据。”这句话在上述代码上下文中的含义。
更多关于Golang中为什么需要先分配map才能存储数据的实战教程也可以访问 https://www.itying.com/category-94-b0.html
2 回复
当你声明一个变量时,你仅仅是声明它,也就是说,你没有初始化它。而如果你使用 :=,它会被声明并初始化。
你也可以使用 var 达到同样的效果,如果你这样做:
var ages map[string]int = make(map[string]int)
更多关于Golang中为什么需要先分配map才能存储数据的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


