Array/Slice Built-ins

Make

Make allows you to define a slice, its length and its capacity

func main() {
	a := make([]int, 1, 2)

	fmt.Printf("Length %v\n", len(a))
	fmt.Printf("Capacity %v\n", cap(a))
}

/*
Output:
	Length 1
	Capacity 2
*/

Adjusting length

This means you now can adjust the length of that slice, or even just change

func main() {
	a := make([]int, 1, 2)

	a = a[:2]

	fmt.Printf("Length %v\n", len(a))
	fmt.Printf("Capacity %v\n", cap(a))
}

/*
Output:
	Length 2
	Capacity 2
*/

Append

Append just creates a new array with that value appended

func main() {
	a := make([]int, 1, 1)

	a = append(a, 1)

	fmt.Printf("Length %v\n", len(a))
	fmt.Printf("Capacity %v\n", cap(a))
	fmt.Println(a)
}

/*
Output:
	Length 2
	Capacity 2
	[0 1]
*/