go - make(map) 和 map{} 之间的区别
问题描述
只是想知道两者之间有什么区别:
z := make(map[*test] string)
和
z := map[*test] string{}
我是在想象事情还是它们都无效?
解决方案
内置函数 make 采用类型 T,它必须是切片、映射或通道类型,可选地后跟特定类型的表达式列表。它返回一个 T 类型的值(不是 *T)。内存按照初始值部分中的说明进行初始化。
Call Type T Result make(T) map map of type T make(T, n) map map of type T with initial space for approximately n elements
复合文字为结构、数组、切片和映射构造值,并在每次评估它们时创建一个新值。它们由字面量的类型和后跟大括号绑定的元素列表组成。每个元素可以可选地在一个相应的键之前。
map[string]int{} map[string]int{"one": 1}
make
是规范形式。复合文字是一种方便的替代形式。
z := make(map[int]string)
和
z := map[int]string{}
是等价的。
推荐阅读
- powershell - 如何在 Powershell 中删除文件夹?
- arrays - 如何知道所有并行运行的后台命令的进程号
- javascript - 在 ComponentDidMount 中调用的操作被无限调用
- kubernetes - 为什么带有简单 hello-world 图像的 kubernetes pod 会收到 CrashLoopBackOff 消息
- kubernetes - 在 Kubernetes 中使用命令复制挂载的文件很慢
- highcharts - 当系列数据使用命名对象时,将数据绘制到 highchart 图表上
- c# - Winforms:可编辑的组合框绑定到带有验证的数组,修改项目的正确方法?
- python - 将一维数组转换为二维数组
- git - 如何在 xcode 10 中使用 SVN
- html - 自定义 SELECT 下拉图标不显示在 IE 中