Allocation: new(Foo) vs Foo{}

  • 本文关键字:Foo vs Allocation new go
  • 更新时间 :
  • 英文 :


用于创建对象的下列语法之间有什么区别?为什么2种不同的方法,如果结果是相同的?

type Foo struct {
    X int
}
f1 := &Foo{}
f2 := new(Foo)

使用new是直接返回本地类型(int, float64, uint32,…)的指针的唯一方法,而无需先创建正常变量,然后返回指向它的指针。

在https://groups.google.com/forum/#上有一个更长的讨论!topic/golang-nuts/K3Ys8qpml2Y和https://groups.google.com/forum/#!主题/golang-nuts/GDXFDJgKKSs,但基本上是无用的。

引用自Dave Cheney:

new不会消失,它不会消失,它是保证的一部分1.

你不需要使用它,大多数人不需要,但这并不意味着它没有什么用

最新更新