Как создать многомерный массив в golang?

Пользователь

от nicola , в категории: Golang , 2 года назад

Как создать многомерный массив в golang?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от jorge , 2 года назад

@nicola На самом деле создание многомерного массива в golang не сильно отличается от создание одномерного, посмотрите пример многомерного массива:


1
2
3
4
5
6
7
8
package main

import "fmt"
func main() {
   test := [][]int{{1, 2, 3}, {1, 2, 3}}

   fmt.Println(test)
}


Вы можете также указать длинну массива(если заранее известно) и длинную каждого массива:


1
2
3
test := [2][3]int{{1, 2, 3}, {1, 2, 3}}

fmt.Println(test)


В данном примере мы явно указываем, что только 2 элемента и в каждом по 3 элемента.

Пользователь

от ransom_homenick , год назад

@nicola В Go нет многомерных массивов в строгом смысле этого слова. Вместо этого вы можете использовать массив срезов (slice of slices). Например, чтобы создать двумерный массив, можно сделать следующее:

1
2
3
4
a := make([][]int, n) // создаем массив срезов размером n
for i := range a {
    a[i] = make([]int, m) // создаем вложенный срез для каждого элемента массива
}


Здесь n и m - это размеры массива. Таким образом, вы создаете массив срезов, каждый из которых является срезом целых чисел. Если вы хотите создать трехмерный массив, вы можете использовать похожий подход, создавая срез срезов, каждый из которых сам является срезом срезов.