Многомерные комбинации в Go
Массив срезов
Массив может хранить срезы. У каждой ячейки своя длина. Сначала берут срез по индексу массива, затем элемент среза:
rows := [2][]int{{1, 2}, {3, 4, 5}}
fmt.Println(rows[1][2]) // выведет 5
Карта срезов
Значением пары карты может быть срез. Сначала срез получают по ключу, затем элемент по индексу:
data := map[string][]int{
"a": {1, 2, 3},
"b": {4, 5, 6},
}
fmt.Println(data["a"][1]) // выведет 2
Срез карт
Срез может хранить карты. Сначала выбирают карту по индексу среза, затем значение по ключу:
table := []map[string]int{
{"id": 1, "age": 27},
{"id": 2, "age": 31},
}
fmt.Println(table[1]["age"]) // выведет 31
Дан массив срезов:
rows := [2][]string{{"x", "y"}, {"z", "w", "v"}}
Выведите второй элемент первого среза.
Дана карта срезов:
data := map[string][]int{
"Ann": {5, 4, 5},
"Bob": {3, 5, 4},
}
Выведите вторую оценку ученика "Bob".
Дан срез карт:
table := []map[string]string{
{"city": "Paris", "code": "33"},
{"city": "Rome", "code": "39"},
}
Выведите название города из второй карты.