Sobes.tech
Junior — Middle

Kus mälus luuakse Go-s slice?

sobes.tech AI

Vastus AI-lt

In Go, a slice is a structure that contains a pointer to an array, a length, and a capacity. The slice itself (a structure with these three fields) is usually created on the stack if it is local, or on the heap if it is part of a more complex structure or returned from a function.

However, the data that the slice refers to (i.e., the array itself) is always on the heap if it is dynamically allocated, or in static memory if it is a fixed-size array.

For example:

func example() []int {
    arr := []int{1, 2, 3}
    return arr
}

Here, arr is a slice, whose structure can be on the stack, but the array with the elements is on the heap so that the data persists after the function exits.

Therefore, a slice is a small structure in memory (usually on the stack) that points to an array on the heap.