Junior — Middle
Можете ли да обясните какво е срез (slice) в програмирането и как работи?
sobes.tech AI
Отговор от AI
Ряз (slice) в Go е динамичен, променящ се по размер фрагмент от масив. Той представлява структура, която съдържа:
- указател към първия елемент на масива,
- дължина (броя на елементите в среза),
- капацитет (максималният брой елементи, които срезът може да съдържа без преразпределение).
Срезовете позволяват работа с последователности от елементи без необходимост от копиране на данни.
Пример за създаване и използване на срез:
arr := [5]int{1, 2, 3, 4, 5}
slice := arr[1:4] // срез на елементите с индекси 1,2,3
fmt.Println(slice) // [2 3 4]
slice = append(slice, 6) // добавяме елемент, при необходимост се заделя нова памет
fmt.Println(slice) // [2 3 4 6]
Срезовете са удобни, тъй като могат да се създават нови от съществуващи, да се променя размерът им и да се предават към функции без копиране на цял масив.