例如: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 關注
- 196 瀏覽
添加回答
舉報
0/150
提交
取消