Junior — Middle
Can you explain the principle of operation of slices in programming languages?
sobes.tech AI
Answer from AI
A slice in Go is a dynamic, resizable view of a sequence of elements of the same type. It contains:
- a pointer to an array,
- a length (the number of elements in the slice),
- a capacity (the maximum number of elements that can be stored without allocating new memory).
Slices allow working with parts of arrays or creating new dynamic sequences without copying data.
Example:
arr := [5]int{1, 2, 3, 4, 5}
s := arr[1:4] // a slice of elements with indices 1,2,3: [2 3 4]
fmt.Println(s) // [2 3 4]
s = append(s, 6) // add an element, if capacity allows, the slice expands
Slices are convenient because they allow efficient data handling without copying arrays and enable dynamic resizing of the sequence.