2 回答

TA貢獻1798條經驗 獲得超7個贊
有沒有辦法從嵌套結構類型創建對象
不,因為沒有“嵌套結構類型”這樣的東西。你沒有類型Car.Wheel,你有類型Car,有字段Wheel;該字段的類型是未命名的類型struct { name string }。您不能引用未命名的類型;它是未命名的。要引用一個類型,你必須給它命名。你可以這樣做:
var wheel struct { name string }
而且您可以在wheel和之間進行分配Car.Wheel,因為它們是同一類型;然而,這不是特別方便(你必須在你使用它的任何地方寫出完整的類型定義),這意味著你不能在類型上定義任何方法,這可能是也可能不是你關心的限制.
一般來說,在 Go 中,您只想為要使用的每種類型定義一個命名類型,并且這些定義都位于頂層:
type Car struct {
Wheel Wheel
}
type Wheel struct {
name string
}

TA貢獻1871條經驗 獲得超8個贊
您是否正在尋找這樣的東西:
package main
import "fmt"
type Car struct {
model string
wheel Wheel
}
type Wheel struct {
name string
}
func main() {
car := Car{model: "Toyota"}
car.wheel.name = "my wheel"
fmt.Println("car model: ", car.model)
fmt.Println("car wheel name:", car.wheel.name)
}
- 2 回答
- 0 關注
- 107 瀏覽
添加回答
舉報