суббота, 12 января 2019 г.

Основы Go: range, итерация по срезам и картам

Итерация по срезу или карте (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


Читайте также:


Комментариев нет:

Отправить комментарий