例如:type Foo struct { x int}var foo *Foo = &Foo{5}type Bar *struct { x int}var bar Bar = ??我该如何初始化bar?我意识到有一个解决方法:type Bar *Foovar bar Bar = &Foo{5}但我想避免这种情况。
1 回答
智慧大石
TA贡献1946条经验 获得超3个赞
没有理由使用 form type Bar *struct。该类型是指向匿名结构的指针,因此您必须使用匿名结构(或者如您所指出的,等效的可转换结构类型)对其进行初始化。
var b Bar = &struct{x int}{}
// or
b := Bar(&Foo{})
声明本质上是一样的
type Bar *Foo
这可能会让你更清楚你想要做什么。
但同样,这是不惯用的,在团队设置或公共界面中使用它可能会遇到阻力(即我个人不会通过这是代码审查)
- 1 回答
- 0 关注
- 182 浏览
添加回答
举报
0/150
提交
取消