go语言如何使用new构造Map
创始人
2025-05-30 03:57:37

前提阅读:

不要使用 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,这样更加方便和直观。

相关内容

热门资讯

今日重大消息“陕西欢喜开挂器”... 今日重大消息“陕西欢喜开挂器”!太坑了果然有挂您好:陕西欢喜这款游戏可以开挂,确实是有挂的,需要了解...
内幕揭秘!AAPoKer的确真... 内幕揭秘!AAPoKer的确真的有挂,德普之星软件透明挂app,查看详细教程(用挂教程)是一款可以让...
科技推荐“传送屋怎么装挂”!详... 您好:传送屋这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9752949】很多玩家在这款游戏中...
实测讲解“青龙炸金花怎么开挂”... 您好,青龙炸金花这款游戏可以开挂的,确实是有挂的,需要了解加微【9752949】很多玩家在这款游戏中...
玩家攻略科普“天娱游戏开挂器”... 玩家攻略科普“天娱游戏开挂器”!必胜开挂神器亲.天娱游戏这款游戏是可以开挂的,确实是有挂的,通过添加...