为了账号安全,请及时绑定邮箱和手机立即绑定

从 GoLang 中的嵌套结构定义创建对象?

从 GoLang 中的嵌套结构定义创建对象?

Go
慕侠2389804 2022-12-13 10:45:24
有没有办法从嵌套结构类型创建对象func main() {    car := Car{}    var wheel Car.Wheel}type Car struct {    Wheel struct {        name string    }}我有一个深层嵌套的 json。我有兴趣分别对这些嵌套结构中的许多进行操作。我想通过“根”定义访问结构定义。类似于在 json 中为我的许多嵌套对象Car.Wheel 显式定义的东西type Wheel struct
查看完整描述

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

}


查看完整回答
反对 回复 2022-12-13
?
ITMISS

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)

}


查看完整回答
反对 回复 2022-12-13
  • 2 回答
  • 0 关注
  • 90 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信