Итерация по срезу или карте (map) производится с помощью формы цикла for с ключевым словом range.
На каждой итерации по срезу возвращаются два значения. Первое - это индекс, а второе - копия элемента по этому индексу.
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
Вы можете опустить индекс или значение путем его присвоения к _.
Если вам нужен только индекс, опустите ", 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
Читайте также:
- Основы языка Go: литералы срезов
- Основы языка Go: срезы (slices)
- Основы языка Go: размер и вместимость среза
Комментариев нет:
Отправить комментарий