В Go for range работает таким же образом, как и в Python. То есть range – это диапазон, по которому пробегается цикл for.
Хорошо, я понял, покажи пример кода, как это всё работает, для полной ясности происходящего. Заранее благодарю за помощь.
Пример:
package main
import "fmt"
var pow = []int{1, 2, 4, 8, 16, 32, 64, 128}
func main() {
for i, v := range pow {
fmt.Printf("2**%d = %d\n", i, v)
}
}
Вывод:
2**0 = 1
2**1 = 2
2**2 = 4
2**3 = 8
2**4 = 16
2**5 = 32
2**6 = 64
2**7 = 128
Мне кажется, тут всё понятно, так как код простой, тем более для того, кто учил Python.
gracie: Пример: package main import "fmt" var pow = []int{1, 2, 4, 8, 16, 32, 64, 128} func main() { for i, v := range pow { fmt.Printf("2**%d = %d\n", i, v) } } Вывод: 2**0 = 1 2**1 = 2 2**2 = 4 2**3 = 8 2**4 = 16 2**5 = 32 2**6 = 64 2**7 = 128 Мне кажется, тут всё понятно, так как код простой, тем более для того, кто учил Python.
Да, всё понятно, спасибо. Действительно, Go и Python очень похожи своим синтаксисом и принципом работы.
Также вы можете опустить индекс или значение, путем его присвоения к _. Если вам нужен только индекс, опустите ", value" полностью.
Пример:
package main
import "fmt"
func main() {
pow := make([]int, 10)
for i := range pow {
pow[i] = 1 << uint(i) // == 2**I
}
for _, value := range pow {
fmt.Printf("%d\n", value)
}
}
Вывод:
1
2
4
8
16