Go Basics
Go Arrays
A fixed number of values of one type, and why assigning an array copies it.
What you'll learn
- [5]int and [...]int
- Arrays are values
- Arrays of arrays
var scores [5]int
720
01
02
03
644
Fixed size, copied on assignment
An array holds a fixed number of values of one type, and its length is part of its type. Arrays are less common than slices in Go, but slices are built on top of them.
[5]int starts with five zeros. [...] lets the compiler count the items. Assigning an array copies every item, so changing copyOfPrimes leaves primes alone. An array of arrays makes a grid.
Key points
- The length is part of the type.
- Assigning an array copies every item.
- Slices are built on arrays.
Runnable Go example
main.go
package main
import "fmt"
func main() {
var scores [5]int // fixed size, zero values
scores[0] = 72
scores[4] = 64
fmt.Println(scores, len(scores))
primes := [...]int{2, 3, 5, 7}
copyOfPrimes := primes // arrays are values: this copies all items
copyOfPrimes[0] = 99
fmt.Println(primes, copyOfPrimes)
grid := [2][3]int{{1, 2, 3}, {4, 5, 6}}
fmt.Println(grid[1][2], grid)
}
[72 0 0 0 64] 5
[2 3 5 7] [99 3 5 7]
6 [[1 2 3] [4 5 6]]Practice
Open the example in the online compiler, change a value or add a line, and predict the output before you run it. Then break the code on purpose and read the compiler's message.
Finished this lesson?
Mark it as learned to track your progress.
Your progress is saved in this browser Sign in to keep it on every device.
Practice with a challenge
Use what this lesson covers to solve a real problem. Each challenge runs in your browser with instant tests and an AI review.
- Array Maximum Find the largest value in a list. Easy
- Min and Max Together Find the smallest and largest value in one pass. Easy