首页 >后端开发 >Golang >Go Maps:`make` 与 Map Literal – 我什么时候应该使用哪个?

Go Maps:`make` 与 Map Literal – 我什么时候应该使用哪个?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-13 12:48:14212浏览

Go Maps:  `make` vs. Map Literal – When Should I Use Which?

澄清使用和不使用“make”的地图初始化之间的差异

使用 Go 地图时,有两种主要的初始化方法:使用地图文字或调用“make”函数。理解这些方法之间的细微差别对于优化代码性能至关重要。

Map Literals 与“make”

第二种方法,使用“make(map[string ]int)”,始终创建一个空地图。但是,第一个方法“var m = map[string]int{}”表示映射文字。此技术保留用于初始化具有非空值的映射。

示例:

m := map[bool]string{false: "FALSE", true: "TRUE"}

没有初始值的映射文字

概括您的示例,“m := map[T]U{}”,会生成一个地图文字没有初始键值对。这在功能上与“m := make(map[T]U)”相同。

性能注意事项

初始化空地图时,几乎没有性能使用地图文字或“make”之间的区别。两种方法都会生成一个空映射并占用相同的内存量。

指定初始容量

使用“make”的真正优势在于它能够指定一个地图的初始容量。默认情况下,地图会使用增长因子进行初始化,每次超出其容量时,该增长因子的大小都会增加一倍。但是,使用“make”可以预先确定地图的大小。

示例:

m := make(map[T]U, 50)

上面的代码创建了一个具有足够空间的地图,可容纳最多50 个元素。如果您预计地图的大小会显着增加,此方法可以帮助最大限度地减少未来的内存分配。

以上是Go Maps:`make` 与 Map Literal – 我什么时候应该使用哪个?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn