从interface{}中获取值的Go语言方法

3
我正在遍历从couchDB.View返回的结果并提取Key。
for _, row := range rows {
        fmt.Printf("%v, %T\n", row.Key, row.Key)
    }

这样的结果是:
[nh001 mgr], []interface {}
[nh002 nh], []interface {}

我需要阅读这个接口并获取第二个值(“mgr”或“nh”)。

由于它不是一个映射,所以我不能遍历它。

1个回答

2
我假设你的值row.Key是从某个地方以interface{}的形式返回的?
如果是这样,那么在你的range rows中,你可以尝试将其转换为类型[]interface{}。因此,你的代码应该看起来像这样。
for _, row := range rows {
    if val, ok := row.Key.([]interface{}); ok {
        fmt.Println(val[1])
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接