英文:
Concatenate ints inside array golang - GoLang
问题
我有一个包含3个位置的数组,假设它们都是数字5。
[5 5 5]
我该如何将它传递给一个变量,使得它保持为555?就像这样。
n := 555
英文:
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
答案1
得分: 6
你可以像在其他语言中一样进行操作:
s := []int{1, 2, 3}
n := 0
for _, sn := range s {
n *= 10
n += sn
}
Playground: http://play.golang.org/p/SSemwbJuTz.
编辑: 如果你计划处理的数字不仅限于个位数,那么循环会有些复杂:
for _, sn := range s {
shift := 10
for shift < sn {
shift *= 10
}
n *= shift
n += sn
}
这个方法适用于像[]int{1, 23, 456}
这样的输入:http://play.golang.org/p/h1xsu9vtmP.
但要注意整数溢出的问题。
英文:
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.
答案2
得分: 1
如果你想要将结果作为字符串输出:
package main
import "fmt"
import "strconv"
func main() {
fmt.Println("Hello, playground")
a := []int{1, 2, 3, 4}
s := ""
for _, c := range a {
s += strconv.Itoa(c)
}
fmt.Println(s)
}
如果你想要将结果作为字符串输出。
英文:
If you want to have result as string
package main
import "fmt"
import "strconv"
func main() {
fmt.Println("Hello, playground")
a := []int{1, 2, 3,4}
s := ""
for _, c := range a {
s += strconv.Itoa(c)
}
fmt.Println(s)
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论