Sobes.tech
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]

Срезовете са удобни, тъй като могат да се създават нови от съществуващи, да се променя размерът им и да се предават към функции без копиране на цял масив.