Практика на итераторы в Go
Дана следующая карта:
caps := map[string]int{
"red": 1,
"green": 2,
"blue": 3,
}
Выведите все ключи caps через
итератор из пакета maps, по одному
на строку.
Дан следующий срез:
points := []int{2, 4, 6, 8}
Найдите произведение всех элементов
points, перебирая только значения
через пакет slices.
Дано число:
from := 5
Опишите обратный счет от from и
выведите числа, пока не дойдете до 1.
Дан следующий срез:
tags := []string{"go", "rust", "zig"}
Переберите tags и остановите цикл
после первых двух напечатанных строк.
Дан следующий код:
func Pair() func(func(int) bool) {
return func(yield func(int) bool) {
if !yield(100) {
return
}
yield(200)
}
}
Скажите, напечатается ли 200, если
в цикле перебора сразу после первого
вывода выполнить break.
Дана следующая карта:
ids := map[int]string{
10: "a",
20: "b",
}
Соберите срез ключей вручную в цикле без отдельного промежуточного перебора значений и выведите длину получившегося среза.