Go - Arrays
- An array is a numbered sequence of elements of a single type
- The array’s length is part of its type (e.g.
[10]int) - Arrays have a fixed size and cannot be resized
Declaration
go
var numbers [10]int // Array of 10 integers
var names [5]string // Array of 5 strings
var matrix [3][3]int // Multidimentional array of integers (3x3)Zero Value
The zero value of an array is an array with all the elements initialized to the zero value of their type.
go
var numbers [4]int // [0 0 0 0]
var names [3]string // ["" "" ""]
var booleans [4]bool // [false false false false]Initialization
go
// Array literal.
a := [6]int{1, 2, 3, 4, 5, 6} // [6]int
// If not all the elements are provided in the literal
// the missing elements are set to the zero value for the array element type.
n := [4]int{1, 2} // [4]int{1, 2, 0, 0}Size Inference
The compiler can infer the size of the array based on the number of elements provided when using the ... notation:
go
n := [...]int{1, 2, 3, 4, 5, 6} // [6]intLength
The len() function may be used to get the length of an array:
go
length := len(n) // 6Array Elements
The array elements can be accessed using their index in square brackets []:
go
first := array[0] // Access the 1st element
last := array[len(array)-1] // Access the last element
n := matrix[0][2] // Access the 3rd element of the 1st array
array[1] = 10 // Set the value of the 2nd element
matrix[1][0] = 7 // Set the value of the 1st element of the 2nd array
// A panic will occur at runtime if the index is out of range.
array[100] // panic: runtime error: index out of range
// Pointer to an array.
p := &array
// Explicit pointer dereferencing is not required.
p[0] = 10
// Shorthand for
(*p)[0] = 10