Junior — Middle
What are the consequences of using the append method for a slice declared without initial parameters?
sobes.tech AI
Answer from AI
If a slice in Go is declared without initial parameters, for example var s []int, then it is initially equal to nil and does not point to an allocated array. When using the append function, Go automatically allocates a new array and adds elements to it, returning a new slice with the required capacity.
This means that append safely works with nil slices, and you can write:
var s []int // nil slice
s = append(s, 1, 2, 3) // now s points to a new array with elements
Consequences:
- There is no need to initialize a slice before using
append. - The first call to
appendallocates memory. - If the slice is nil, then
len(s) == 0andcap(s) == 0.
Thus, using append with a nil slice is standard practice in Go, which simplifies working with dynamic collections.