如何将A和B的选定值注入下面的孩子C?如何在没有嵌套循环的情况下将嵌套结构体塑造成另一个结构体?
decoder.go(Playground link)
package main
import (
"fmt"
)
type Input struct {
A []A
}
type A struct {
AID int
B []B
}
type B struct {
BID int
C []C
}
type C struct {
// I want to inject only AID and BID here
// But, without injecting A and B directly
// (without recursively)
CID int
}
func main() {
res := Input{
A: []A {
A {
AID: 1,
B: []B {
B{ BID: 11, C: []C{{ 111 }, { 111 }}},
B{ BID: 12, C: []C{{ 121 }, { 122 }}},
},
},
A {
AID: 2,
B: []B {
B{ BID: 21, C: []C{{ 211 }, { 211 }}},
B{ BID: 22, C: []C{{ 221 }, { 222 }}},
},
},
},
}
// I want to inject AID and BID into C
// WITHOUT nested loops like this:
for _, a := range res.A {
for _, b := range a.B {
for _, c := range b.C {
fmt.Println(a.AID, b.BID, c.CID)
}
}
}
}
@EricPauley我明白了,THX。我想知道我是否做得正确。 –
持续点击关闭链接的人不遵循StackOverflow指南。 _请编辑问题,将其限制为具有足够详细信息的特定问题以确定适当的答案。避免一次询问多个不同的问题。这是一个具有足够细节的特定问题,那么为什么你点击关闭? –
请编辑具有足够细节的问题以确定合适的答案。目前还不清楚你想要做什么。例如,你的意思是:“我想将AID和BID注入C”,其中'C struct {CID int} C没有'AID'或'BID'。你注意什么? – peterSO