В golang, как итерации двух массивов, используя один "диапазон"
Мы можем использовать
for _, x := range []int{1, 2, 3} {
// do something
}
Итерировать массив.
Как я могу одновременно итерации двух массивов?
Есть ли что-то вроде следующего в python?
for x, y in range([1, 2, 3], [4, 5, 6]):
print x, y
Ответы
Ответ 1
Вы не можете, но если они имеют одинаковую длину, вы можете использовать индекс из 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
Ответ 2
Если ваши фрагменты имеют одинаковую длину, используйте range
следующим образом:
for i := range x {
fmt.Println(x[i], y[i])
}
Ответ 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 для примера игровой площадки.
Ответ 4
ему понадобится асинхронное решение, может использовать канал;
https://play.golang.org/p/goAsZ6spKR