Назад к вопросам
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]
}
Однако, если внутри функции изменить сам слайс (например, присвоить новый слайс), это не повлияет на исходный слайс вне функции.