Sobes.tech
Назад к вопросам
Junior — Middle
79

Каким образом осуществляется передача среза (slice) в функцию в языке программирования?

Компании, где спрашивали
МТС DigitalМТС Digital

Ответ от нейросети

sobes.tech AI

В языке Go срез (slice) передаётся в функцию по значению, но при этом копируется не весь массив данных, а лишь структура среза, которая содержит указатель на массив, длину и ёмкость. Это значит, что внутри функции изменения элементов среза будут отражаться на исходном массиве, так как указатель указывает на те же данные.

Пример:

func modifySlice(s []int) {
    s[0] = 100 // изменит первый элемент исходного среза
}

func main() {
    arr := []int{1, 2, 3}
    modifySlice(arr)
    fmt.Println(arr) // Выведет: [100 2 3]
}

Таким образом, передача среза в функцию эффективна и позволяет изменять содержимое массива, на который он ссылается.