介绍文档用很多段落来解释 new()
和 make()
之间的区别,但实际上,您可以在本地范围内创建对象并返回它们。
为什么要使用这对分配器?
原文由 slezica 发布,翻译遵循 CC BY-SA 4.0 许可协议
介绍文档用很多段落来解释 new()
和 make()
之间的区别,但实际上,您可以在本地范围内创建对象并返回它们。
为什么要使用这对分配器?
原文由 slezica 发布,翻译遵循 CC BY-SA 4.0 许可协议
7 回答5.6k 阅读
6 回答7.1k 阅读✓ 已解决
4 回答2.6k 阅读
2 回答1.1k 阅读✓ 已解决
1 回答2.3k 阅读
2 回答1.1k 阅读
1 回答1.1k 阅读
Go有多种内存分配和值初始化的方式:
&T{...}
,&someLocalVar
,new
,make
创建复合文字时也可能发生分配。
new
可用于分配整数等值,&int
是非法的:new
和make
之间的区别可以通过查看以下示例看出:假设 Go 没有
new
和make
,但它有内置函数NEW
。那么示例代码将如下所示:*
是强制性 的,所以:是的,将
new
和make
合并到一个内置函数中是可能的。然而,与拥有两个内置函数相比,单个内置函数可能会在新 Go 程序员中引起更多的混淆。考虑到以上所有几点,
new
和make
保持独立似乎更合适。