Sobes.tech
Назад к вопросам
Middle
5

Можем ли мы передать слайс в функцию параметром?

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

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

sobes.tech AI

Да, в Go можно передавать слайсы в функции как параметры. Слайс в Go — это структура, которая содержит указатель на массив, длину и ёмкость. При передаче слайса в функцию копируется именно эта структура, но не сам массив, на который он указывает. Это значит, что изменения элементов слайса внутри функции будут видны и снаружи, так как они ссылаются на один и тот же массив.

Пример:

func modifySlice(s []int) {
    s[0] = 100
}

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

Однако, если внутри функции изменить сам слайс (например, присвоить новый слайс), это не повлияет на исходный слайс вне функции.