gpt4 book ai didi

go - go 中应该使用什么 New() 或 var?

转载 作者:IT王子 更新时间:2023-10-29 01:18:30 24 4
gpt4 key购买 nike

应该如何为结构创建对象?

object := new(struct)

var object struct

我无法理解什么时候使用什么?如果两者相同,应该首选哪一个?

最佳答案

您显示的 new 语法返回一个指针,而另一个是一个值。在这里查看这篇文章; https://golang.org/doc/effective_go.html#allocation_new

实际上还有一个我更喜欢的选项。它被称为复合文字,看起来像这样;

object := &struct{}

上面的例子等同于你使用new。它的妙处在于,您可以在 struct 中的方括号内为任何属性指定值。

何时使用您需要根据具体情况做出的决定。在 Go 中,有几个原因我想要一个或另一个;也许只有指针 *myType 实现了一些接口(interface)而 myType 没有,一个实例 myType 可能包含大约 1 GB 的数据并且你想确保您正在将指针而不是值传递给其他方法等。选择使用哪个取决于用例。虽然我会说,指针很少会更糟,因为情况就是如此,我几乎总是使用它们。

关于go - go 中应该使用什么 New() 或 var?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31549980/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com