douwen1937 2015-08-17 13:26
浏览 256
已采纳

在数组golang中连接整数-GoLang

I have an array with 3 positions, imagine it has the number 5 in all of them.

[5 5 5]

how can I pass it to a var in a way that it stays 555? just like this.

n:= 555 
  • 写回答

2条回答 默认 最新

  • drvxclagw656708070 2015-08-17 13:32
    关注

    The same way you would in any other language:

    s := []int{1, 2, 3}
    n := 0
    for _, sn := range s {
        n *= 10
        n += sn
    }
    

    Playground: http://play.golang.org/p/SSemwbJuTz.

    Edit: if you're planning to work with more that just single-digit numbers, the loop is a bit trickier:

    for _, sn := range s {
        shift := 10
        for shift < sn {
            shift *= 10
        }
        n *= shift
        n += sn
    }
    

    This works with inputs like []int{1, 23, 456}: http://play.golang.org/p/h1xsu9vtmP.

    Look out for the integer overflow though.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?