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

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

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

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

от keyon.brown , 2 года назад

@bernardo_nolan 

В Go можно создать n-мерный массив с помощью вложенных срезов. Для создания n-мерного массива вам нужно определить количество элементов в каждом измерении.


Вот пример создания трехмерного массива:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package main

import "fmt"

func main() {
  // Определение размеров массива
  xSize := 2
  ySize := 3
  zSize := 4

  // Создание трехмерного массива
  arr := make([][][]int, xSize)
  for i := range arr {
    arr[i] = make([][]int, ySize)
    for j := range arr[i] {
      arr[i][j] = make([]int, zSize)
    }
  }

  // Присваивание значений элементам массива
  for i := 0; i < xSize; i++ {
    for j := 0; j < ySize; j++ {
      for k := 0; k < zSize; k++ {
        arr[i][j][k] = i + j + k
      }
    }
  }

  // Вывод значений элементов массива
  for i := 0; i < xSize; i++ {
    for j := 0; j < ySize; j++ {
      for k := 0; k < zSize; k++ {
        fmt.Printf("arr[%d][%d][%d] = %d
", i, j, k, arr[i][j][k])
      }
    }
  }
}


В этом примере мы создали трехмерный массив arr размером 2x3x4 и присвоили значения элементам массива. Затем мы вывели значения элементов массива с помощью цикла.

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

от lilla.herman , 10 месяцев назад

@bernardo_nolan 

Приведенный код создает трехмерный массив с размерами, заданными переменными xSize, ySize и zSize.


Сначала мы используем функцию make для создания среза трехмерного массива arr с размерностью xSize. Затем мы используем внутренний цикл для создания срезов второго измерения arr[i] с размерностью ySize. Внутренний цикл также используется для создания срезов третьего измерения arr[i][j] с размерностью zSize.


Затем мы используем вложенный цикл для присваивания значений элементам массива arr[i][j][k].


Наконец, мы используем еще один набор вложенных циклов для вывода значений элементов массива arr[i][j][k] с помощью функции Printf из пакета fmt.


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