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

Заполнение многомерных структур в Go

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

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

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

Карта срезов

Срезы в карте собирают так же. Вместо индекса массива берут ключ:

data := map[string][]int{} keys := []string{"a", "b"} for i := 0; i < len(keys); i++ { row := []int{} for j := 1; j <= 2; j++ { row = append(row, j) } data[keys[i]] = row } fmt.Println(data["b"][1]) // выведет 2

Срез карт

Каждый элемент среза - отдельная карта. Ее собирают на шаге цикла и кладут в срез через append:

table := []map[string]int{} for i := 1; i <= 2; i++ { row := map[string]int{"id": i} table = append(table, row) } fmt.Println(table[1]["id"]) // выведет 2

Практические задачи

Заполните массив из двух срезов числами 1, 2 и 3 в каждом. Выведите последний элемент второго среза.

Заполните карту срезов. По ключам "a" и "b" лежат числа 4 и 5. Выведите второе число ключа "b".

Заполните срез двумя картами. В каждой есть ключ "age", числа 27 и 31. Выведите возраст второй карты.

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