go语言如何使用new构造Map

前提阅读:

不要使用 new,永远用 make 来构造 map

注意 如果你错误的使用 new () 分配了一个引用对象,你会获得一个空引用的指针,相当于声明了一个未初始化的变量并且取了它的地址:

mapCreated := new(map[string]float32) 接下来当我们调用:mapCreated[“key1”] =
4.5 的时候,编译器会报错:

invalid operation: mapCreated[“key1”] (index of type
*map[string]float32).

总结为什么不使用 new 原因:

new 函数可以创建一个空的 map,但是这个 map 是一个空的 map 指针。因此,在使用这个 map 前需要先进行初始化。

如何用 new 创建 Map

使用 new 函数创建 map 是可能的,但是需要显式地将指针分配给一个 map 变量,同时还需要手动初始化这个 map。下面是一个使用 new 函数创建并初始化一个 map 的示例:

mapCreated := new(map[string]float32)
*mapCreated = make(map[string]float32)
(*mapCreated)["key1"] = 4.5

需要注意的是,上述代码中的 mapCreated 是一个指向 map[string]float32 类型的指针,因此需要使用 * 操作符来访问指针所指向的实际 map 值。另外,我们还需要在使用 new 函数后,手动使用 make 函数来初始化这个 map。最后,我们可以通过解引用指针并使用键值对语法来对 map 进行赋值操作。

总之,使用 new 函数创建 map 是可能的,但是需要手动进行初始化和赋值操作,比较麻烦。所以建议直接使用 make 函数创建并初始化 map,这样更加方便和直观。

猜你喜欢

转载自blog.csdn.net/qq_46110497/article/details/129630857