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

Цикл по многомерным комбинациям в Go

Массив срезов

Внешний цикл идет по ячейкам массива, внутренний - по элементам среза. Сумму копят с нуля:

rows := [2][]int{{1, 2}, {3, 4, 5}} sum := 0 for i := 0; i < len(rows); i++ { for j := 0; j < len(rows[i]); j++ { fmt.Println(rows[i][j]) sum += rows[i][j] } } fmt.Println(sum) // выведет 15

Карта срезов

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

data := map[string][]int{ "a": {1, 2}, "b": {3, 4}, } sum := 0 for _, row := range data { for _, val := range row { fmt.Println(val) sum += val } } fmt.Println(sum) // выведет 10

Срез карт

Внешний цикл выбирает карту по индексу, внутренний складывает значения ее пар:

table := []map[string]int{ {"a": 1, "b": 2}, {"a": 3, "b": 4}, } sum := 0 for i := 0; i < len(table); i++ { for _, val := range table[i] { fmt.Println(val) sum += val } } fmt.Println(sum) // выведет 10

Дан массив срезов:

rows := [2][]int{{10, 20}, {30}}

Найдите сумму всех чисел и выведите ее.

Дана карта срезов:

data := map[string][]int{ "Ann": {5, 4, 5}, "Bob": {3, 5, 4}, }

Найдите сумму всех оценок и выведите ее.

Дан срез карт:

table := []map[string]int{ {"a": 10, "b": 20}, {"a": 30, "b": 40}, }

Найдите сумму всех чисел и выведите ее.

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