如何在 Go 中初始化一个指向结构的指针类型?

How can I initialize a type that is a pointer to a struct in Go?

例如:

type Foo struct {
        x int
}
var foo *Foo = &Foo{5}

type Bar *struct {
        x int
}
var bar Bar = ??

如何初始化 bar

我知道有一个解决方法:

type Bar *Foo
var bar Bar = &Foo{5}

但我想避免这种情况。

[可能] 没有理由使用 type Bar *struct 形式。该类型是指向匿名结构的指针,因此您必须使用匿名结构(或者如您所指出的,等效的可转换结构类型)对其进行初始化。

var b Bar = &struct{x int}{}
// or
b := Bar(&Foo{})

声明本质上是一样的

type Bar *Foo

这可能会让您更清楚地了解您要做什么。

但同样,这不是惯用的,您可能会在团队设置或 public 界面中使用它时遇到阻力(即我个人不会通过这是代码审查)