我们可以使用
for _, x := range []int{1, 2, 3} {
// do something
}
迭代数组。
如何同时迭代两个数组?
在python中有类似的内容吗?
for x, y in range([1, 2, 3], [4, 5, 6]):
print x, y
答案 0 :(得分:25)
你不能,但如果长度相同,你可以使用range
中的索引。
package main
import (
"fmt"
)
func main() {
r1 := []int{1, 2, 3}
r2 := []int{11, 21, 31}
for i, _ := range r1 {
fmt.Println(r1[i])
fmt.Println(r2[i])
}
}
返回
1
11
2
21
3
31
答案 1 :(得分:9)
如果您的切片长度相同,请使用range
,如下所示:
for i := range x {
fmt.Println(x[i], y[i])
}
答案 2 :(得分:3)
您可以这样做,但代价是创建一个新阵列(可能会或可能不会成为您的交易破坏者)
for _, i := range append([]int{1, 2, 3}, []int{4, 5, 6, 7}...) {
fmt.Printf("%v\n", i)
}
请注意,它适用于不同长度的数组。有关游乐场示例,请参阅https://play.golang.org/p/DRCI_CwSjA。
答案 3 :(得分:-5)
它需要一个异步解决方案,可以使用一个频道;