首页 > 后端开发 > Golang > 正文

## Go 中的 `new(MyStruct)` 与 `&MyStruct{}` 有什么区别?

Linda Hamilton
发布: 2024-10-25 06:54:29
原创
685 人浏览过

## What's the Difference: `new(MyStruct)` vs. `&MyStruct{}` in Go?

理解 new 在 Go 中的作用

与它在原始语言结构中的出现相反,new 在创建指针中找到了它的目的。虽然您不能直接使用 new 为基元指定值,但它成为为结构体等结构化数据类型分配内存的有用工具。在这种情况下,new 返回一个指向未初始化对象的指针,允许您稍后使用其属性。

区分 new 和 &

虽然 new(MyStruct ) 和 &MyStruct{} 产生一个指向新结构实例的指针,它们的使用取决于代码的意图。有时, &MyStruct{} 的简洁性是首选,而 new(MyStruct) 明确地展示了在堆上分配内存的意图。

new 的其他注意事项

超越原始类型和结构体,new 不适用于切片和映射。相反,切片应该使用 make([]float, 100)。

new 的实际应用

由于 Go 缺乏内置构造函数,开发人员经常包装 new调用自定义函数来初始化和自定义对象。这种方法简化了初始化过程,允许隐藏私有字段,并简化了结构演化。此外,它通过将对象的创建与其使用分离来提供灵活性,使开发人员能够在不影响现有代码的情况下更改结构的结构。

以上是## Go 中的 `new(MyStruct)` 与 `&MyStruct{}` 有什么区别?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!