Назад к вопросам
МТС Digital
Junior — Middle
79
Каким образом осуществляется передача среза (slice) в функцию в языке программирования?
Компании, где спрашивали
Ответ от нейросети
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]
}
Таким образом, передача среза в функцию эффективна и позволяет изменять содержимое массива, на который он ссылается.