gpt4 book ai didi

go - 将结构追加到Go中的匿名结构 slice

转载 作者:行者123 更新时间:2023-12-01 21:17:31 28 4
gpt4 key购买 nike

我正在使用这样的已定义结构:

type MyList struct {
Items []struct {
ResourceLocation string `json:"resourceLocation"`
Resource Tmp `json:"resource"`
} `json:"items"`
ListOptions
}
并且我需要向Items slice 添加一个结构。
我尝试了以下方法:
tmp2 := struct {
ResourceLocation string
Resource Tmp
}{
Resource: myTempStruct,
}

tmpList.Items = append(MyList.Items, tmp)
但我得到:

Cannot use 'tmp' (type struct {...}) as type struct {...}


错误。
顺便说一句,我无法修改
type MyList struct {
Items []struct {
ResourceLocation string `json:"resourceLocation"`
Resource Tmp `json:"resource"`
} `json:"items"`
ListOptions
}
这就是为什么我无法为 Items分配名称并在单独的结构中定义它的原因。
谢谢。

最佳答案

问题中的代码不起作用,因为字段标记是该类型的一部分。
将字段标签添加到问题的匿名类型中:

item := struct {
ResourceLocation string `json:"resourceLocation"`
Resource Tmp `json:"resource"`
}{
Resource: myTempStruct,
}
更好的是,声明一个与MyList.Items元素具有相同基础类型的类型。
type Item struct {
ResourceLocation string `json:"resourceLocation"`
Resource Tmp `json:"resource"`
}
在构造元素时使用该类型:
item := Item{Resource: myTempStruct}
list.Items = append(list.Items, item)

关于go - 将结构追加到Go中的匿名结构 slice ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62945669/

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