gpt4 book ai didi

Go - 如何将结构字段的数据类型定义为另一个结构

转载 作者:数据小太阳 更新时间:2023-10-29 03:29:03 24 4
gpt4 key购买 nike

struct的字段类型怎么定义为struct?

我希望能够拥有如下内容:

type HelloResp struct {
Response struct `xml:resp`
}

func (hr *HelloResp) SetHelloResp(interf interface{}) {
hr.Response = interf
}

基本上,我有一些其他的子结构,我想根据需要嵌入到 HelloResp.Response 下,因此它们可以通过函数互换。

无论如何这是可能的还是有任何推荐的 Go 方法来做到这一点?

最佳答案

如果您使用 innerxml 字段标记,您可以延迟处理,直到您知道结构中的内容。为此,您可能需要一个 HTTP header 或一个提供类型的字段。然后,您根据该类型解码响应内容。

type HelloResp struct {
ResponseType string `xml:responseType`
Response []byte `xml:response,innerxml`
}

If the struct has a field of type []byte or string with tag ",innerxml", Unmarshal accumulates the raw XML nested inside the element in that field. The rest of the rules still apply.

另一个(不太理想的)选项是将所有可能包含的类型列为指针。 unmarshaller 将填充它找到的那个。您需要弄清楚设置了哪一个,因此无论哪种方式都需要响应类型。

关于Go - 如何将结构字段的数据类型定义为另一个结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26313418/

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