golang从接口{}获取值

时间:2019-02-25 20:01:59

标签: go go-interface

我正在遍历从SofaDB返回的结果。查看并提取密钥。

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

其结果是:

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

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

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

1 个答案:

答案 0 :(得分:2)

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

如果是,则可以在range rows中尝试将其强制转换为键入[]interface{}。因此,您的代码应如下所示。

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