理解 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中文网其他相关文章!