我想测试从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)。有没有办法做到这一点?