gpt4 book ai didi

go - Go 中内部结构文字的正确语法是什么?

转载 作者:IT王子 更新时间:2023-10-29 01:27:55 26 4
gpt4 key购买 nike

我想用文字形式的所有内部结构初始化 A。

package main

import "fmt"

type A struct {
B struct {
C struct {
D string
}
}
}

func main() {
x := A{B{C{D: "Hello"}}}
y := A{B.C.D: "Hello"}

fmt.Println(a)
}

正确的语法是什么?

我需要它来构建用于 XML 编码(marshal)处理的结构。

最佳答案

构建时必须声明结构的文字类型Composite literals .

如果只使用匿名类型,这会使它变得相当乏味。相反,您应该考虑单独声明每个结构:

package main

import "fmt"

type A struct {
B B
}

type B struct {
C C
}

type C struct {
D string
}

func main() {
x := A{B: B{C: C{D: "Hello"}}}
// x := A{B{C{"Hello"}}} // Without using keys

fmt.Println(x)
}

编辑:

如您的示例所示,使用匿名类型初始化结构,如下所示:

x := A{struct{ C struct{ D string } }{struct{ D string }{"Hello"}}}

关于go - Go 中内部结构文字的正确语法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21453076/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com