澄清使用和不使用“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中文网其他相关文章!