假设我有两个结构。 StructA和StructB,其中包含StructA的数组。我如何遍历StructB并检查其中的StructA中变量的值?
type StructA struct {
varA string
varB string
varC string
}
type StructB struct {
foo []StructA
}
最佳答案
在Go中,Struct不可迭代。另外,您还希望不通过多个foo
字段来遍历StructB
属性。因此,您应该遍历作为结构属性的 slice 。然后,只需检查方程式即可找到所需的值或确定该值不存在。
Playground:
target := "C"
a := StructB{[]StructA{StructA{"A", "B", "C"}}}
for _, i := range a.foo {
if target == i.varA {
fmt.Println(i.varA)
} else if target == i.varB {
fmt.Println(i.varB)
} else if target == i.varC {
fmt.Println(i.varC)
} else {
fmt.Println("None of above")
}
}
围棋是非常明确的,而且技巧很少能带来真正的 yield 。
关于go - 检查值是否在结构体的结构体数组中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43659692/