Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Learn Multi-Dimensional Arrays | Arrays and Slices
Introduction to GoLang

book
Multi-Dimensional Arrays

A multidimensional array is an array that includes other arrays as its elements, forming a matrix or a higher-dimensional structure.

We can create 2D, 3D, and 4D arrays using the following format:

python
var array2D [lengthX][lengthY] dataType
var array3D [lengthX][lengthY][lengthZ] dataType

For example, we can create a 2x2 matrix using the following code:

go

index

copy
var matrix [2][2] int
1
var matrix [2][2] int

We can also initialize it with some data using the following syntax:

go

index

copy
var numbers = [2][2] int { { 1, 2 }, { 3, 4} }
fmt.Println(numbers) // Output: [[1 2] [3 4]]
12
var numbers = [2][2] int { { 1, 2 }, { 3, 4} } fmt.Println(numbers) // Output: [[1 2] [3 4]]

We can access and modify the elements of a multidimensional array using indexing by specifying both the row and column's index of the element:

go

index

copy
var numbers = [2][2] int { { 1, 2 }, { 3, 4} }
fmt.Println(numbers) // Output: [[1 2] [3 4]]
numbers[1][0] = 5
fmt.Println(numbers) // Output: [[1 2] [5 4]]
1234
var numbers = [2][2] int { { 1, 2 }, { 3, 4} } fmt.Println(numbers) // Output: [[1 2] [3 4]] numbers[1][0] = 5 fmt.Println(numbers) // Output: [[1 2] [5 4]]

Following is an illustration of a 2D array with 9 elements:

An array can have as many dimensions as needed. Following is an example of a 5-dimensional array:

go

index

copy
var numbers [2][3][4][5][2] int
1
var numbers [2][3][4][5][2] int

The above array will have 240 elements based on the calculation 2 x 3 x 4 x 5 x 2 = 240. The following code shows the declaration and initialization of a 3D array called `numbers:

go

index

copy
var numbers = [2][3][2] int {
{ {1, 2}, {3, 4}, {5, 6} },
{ {7, 8}, {9, 10}, {11, 12} },
}
1234
var numbers = [2][3][2] int { { {1, 2}, {3, 4}, {5, 6} }, { {7, 8}, {9, 10}, {11, 12} }, }
question-icon
_ _ _
_ _ _
_ _ _
_ _ _
_ _ _
_ _ _

Click or drag`n`drop items and fill in the blanks

dots
{ {'a', 'b'}, {'c', 'd'}, }
dots
dots
=
dots
rune
dots
[2][2]
dots
var
dots
letters

Everything was clear?

How can we improve it?

Thanks for your feedback!

Section 5. Chapter 5
We use cookies to make your experience better!
some-alt