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

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

от macy.davis , в категории: Общие вопросы , 17 дней назад

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp Pocket

1 ответ

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

от laverna , 17 дней назад

@macy.davis 

В Go нельзя создать двумерный или многомерный массив таким же образом, как в некоторых других языках программирования. Но вы можете создать срез с другими срезами внутри, чтобы создать эффект многомерного массива.


Вот пример создания двумерного массива (матрицы) в Go:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
n := 3
m := 4

// Создаем срез с срезами размером m
matrix := make([][]int, n)
for i := range matrix {
    matrix[i] = make([]int, m)
}

// Заполняем матрицу значением
for i := 0; i < n; i++ {
    for j := 0; j < m; j++ {
        matrix[i][j] = i + j
    }
}

// Выводим матрицу на экран
for i := 0; i < n; i++ {
    for j := 0; j < m; j++ {
        fmt.Print(matrix[i][j], " ")
    }
    fmt.Println()
}


В этом примере мы создаем срез matrix из n срезов, каждый размером m. Затем мы заполняем матрицу значениями i + j и выводим ее на экран.


Вы также можете легко адаптировать этот пример для создания массивов с более высокой размерностью. Просто повторите операцию создания срезов внутри другого цикла.