检查结构中的结构数组中是否存在值

时间:2017-04-27 13:44:22

标签: go iteration lookup iterable

假设我有两个结构。 StructA和包含StructA数组的StructB。我如何遍历StructB并检查其中StructA中的变量值?

vendor.js

1 个答案:

答案 0 :(得分:1)

在Go中不能迭代Struct。您还希望通过多个foo字段彻底遍历StructB属性。因此,您应该遍历作为结构属性的切片。然后只需检查方程式以找到所需的值或确定它不存在。

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")
    }
}

Go非常明确,技巧很少能带来真正的利润。