【问题标题】:golang get values from interface{}golang 从接口获取值{}
【发布时间】:2019-02-25 20:01:58
【问题描述】:

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

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

这样的结果是:

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

我需要通读这个界面并获取第二个值(“mgr”或“nh”)。

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

【问题讨论】:

    标签: go go-interface


    【解决方案1】:

    我假设您的值 row.Key 从某处返回为 interface{}

    如果是,那么在您的range rows 中,您可以尝试将其转换为类型[]interface{}。所以你的代码应该是这样的。

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

    【讨论】:

      猜你喜欢
      • 2018-03-08
      • 1970-01-01
      • 2016-03-21
      • 1970-01-01
      • 2016-09-30
      • 2015-04-23
      • 1970-01-01
      • 2021-11-18
      • 2021-07-26
      相关资源
      最近更新 更多