Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗goSpIrVl 98 of 280 menu
◀ ▶

Значения среза через итератор в Go

Значения среза можно отдать в цикл без индексов через готовый итератор. Перебор с двумя переменными по-прежнему дает позицию и элемент, а когда индекс не нужен, достаточно одной переменной и шага из пакета slices.

В пакете slices команда Values принимает срез и возвращает итератор по типу элемента. Порядок совпадает с порядком в срезе: от первого элемента к последнему, без сюрпризов как у карты.

На экране три строки 10, 20 и 30 в том же порядке, что в nums. Сам срез при этом не копируют в новый массив: итератор лишь по одному отдает уже лежащие значения.

Выведем элементы среза по очереди:

package main import ( "fmt" "slices" ) func main() { nums := []int{10, 20, 30} for v := range slices.Values(nums) { fmt.Println(v) } }

Дан следующий срез:

letters := []string{"a", "b", "c"}

Выведите каждый элемент letters через итератор значений из пакета slices.

Дан следующий срез:

vals := []int{3, 5, 7}

Найдите сумму элементов vals в цикле без индекса, только по значениям.

Дан следующий код:

data := []int{1, 2} for i, v := range data { fmt.Println(i, v) }

Перепишите цикл так, чтобы осталась одна переменная со значением, а индекс не использовался.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить