golang 从接口获取值{}

golang get values from interface{}

我正在遍历从 couchDB.View 返回的结果并提取密钥。

for _, row := range rows {
        fmt.Printf("%v, %T\n", row.Key, row.Key)
    }

结果是:

[nh001 mgr], []interface {}
[nh002 nh], []interface {}

我需要通过这个接口读取并获取第二个值("mgr" 或 "nh")。

我无法对此进行迭代,因为这不是地图。

我假设您的值 row.Key 是从某个地方返回的 interface{}?

如果是,那么在您的 range rows 中,您可以尝试将其强制转换为键入 []interface{}。所以你的代码应该看起来像这样。

for _, row := range rows {
    if val, ok := row.Key.([]interface{}); ok {
        fmt.Println(val[1])
    }
}