doujiao3346 2018-03-27 22:04
浏览 21
已采纳

如何在golang中从查询结果中检查相同值并捕获第一个值

Please help me, how to check same value from query and just catch first value in golang or python

{ "data":[ "1234567001", "1234567001", "1234567001", "1234567001", "4567898001", "4567898001", "4567898001" ] }

how to get 2 different values from the data, using go lang

vals := []interface{}{}
for _, row := range result {
    nobil := row.Nobilling
    vals = append(vals, nobil)

    if nobil == row.billing {
        continue
    }

    i++
}

I just want to store different values ​​from the array

  • 写回答

1条回答 默认 最新

  • douwei9973 2018-03-28 05:03
    关注

    I think you might be looking for reflection in go... I say "think" because the way you worded the question is confusing. Something like this?

    res := []interface{}{
        1,
        "row2",
        struct { str string } { str: "what the heck???" },
    }
    // one way of reflecting
    for i, v := range res {
        if r, ok := v.(int); ok {
            fmt.Printf("%d: You have an int: %d
    ", i, r)
        } else if r, ok := v.(string); ok {
            fmt.Printf("%d: You have a string: %q
    ", i, r)
        } else {
            fmt.Printf("%d: Have no idea what this type is: %T
    ", i, v)
        }
    }
    // a cleaner way of reflecting (in my opinion)
    for i, v := range res {
        switch r := v.(type) {
        case int:
            fmt.Printf("%d: You have an int: %d
    ", i, r)
        case string:
            fmt.Printf("%d: You have a string: %q
    ", i, r)
        default:
            fmt.Printf("%d: Have no idea what this type is: %T
    ", i, v)
        }
    } 
    

    Check it in the playground: https://play.golang.org/p/ca7umhCBXt3

    or here in the "Tour of Go": https://tour.golang.org/methods/16

    展开全部

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部