首页 > 后端开发 > Golang > Go 地图:`map[string]int{}` 与 `make(map[string]int)`:有什么区别?

Go 地图:`map[string]int{}` 与 `make(map[string]int)`:有什么区别?

Patricia Arquette
发布: 2025-01-03 06:53:40
原创
889 人浏览过

Go Maps: `map[string]int{}` vs. `make(map[string]int)`: What's the Difference?

了解使用 make 和不使用 make 的映射初始化之间的差异

在 Go 中处理映射时,您可能会遇到两种不同形式的初始化:

1。使用地图文字:

var m = map[string]int{}
登录后复制

2.使用 make 函数:

var m = make(map[string]int)
登录后复制

功能差异:

主要区别在于映射的初始化方式。第二种形式使用 make,总是生成一个空映射。然而,第一种形式是地图文字的独特情况。映射文字可以用初始键值对构造映射。例如:

m := map[bool]string{false: "FALSE", true: "TRUE"}
登录后复制

等效性和性能:

示例的通用版本,

m := map[T]U{}
登录后复制

相当于调用 make:

m := make(map[T]U)
登录后复制

就性能而言,这两种方法在创建空时的行为相同映射。

初始容量:

使用 make 的主要优点是能够指定初始容量。这可以通过向 make 函数添加一个整数参数来完成:

m := make(map[T]U, 50)
登录后复制

这会初始化一个为 50 个元素分配空间的映射。如果您预计映射会增长,预分配可以减少未来的内存分配。

以上是Go 地图:`map[string]int{}` 与 `make(map[string]int)`:有什么区别?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板