如何在Golang中循环包含相同类型字段的struct?

时间:2016-12-12 23:23:38

标签: go

我想测试从Web API返回的结构中的字段。 为此,我需要迭代结构实例Top中的字段。 我该怎么做呢?

我的结构看起来像这样:

type Top struct {
    A1 Mid,
    A2 Mid,
    A3 Mid,
}

type Mid struct {
   B1 string,
   B2 int64,
   B3 float64
}

我的直觉是做这样的事情:

M1 := Mid{"a", 1, 1.9}
M2 := Mid{"b", 2, 3.8}
M3 := Mid{"c", 3, 5.7}

T := Top{M1, M2, M3}
S := reflect.ValueOf(&T).Elem()
for i := 0; i < S.NumField(); i++ {
    m := S.Field(i)
    verifyValuesOfMid(&m)
}

这很有效。但现在我有一个不同的问题。假设我发现Top T中的Mid实例无效。我想打印出该实例的名称(M2)。有没有办法做到这一点?

0 个答案:

没有答案