Junior — Middle
How to distinguish methods of creating a slice in Go using var, make, and assignment by indices or through append?
sobes.tech AI
Answer from AI
In Go, slices can be created in different ways, which differ in initialization and memory allocation:
- Declaration using
var— creates a nil slice that does not point to an array and has length and capacity 0.
var s []int // nil slice
- Creating a slice with
make— allocates an array of specified length and capacity, returning a slice pointing to this array.
s := make([]int, 5) // slice of length 5, filled with zeros
-
Assigning by index — only possible if the slice is already initialized and has sufficient length.
-
Adding elements with
append— adds elements to the slice, increasing capacity and allocating a new array if necessary.
s = append(s, 10) // adds element 10 to the slice
Thus, var creates an empty nil slice, make creates a slice with allocated memory, index assignment requires an existing length, and append dynamically expands the slice.