Назад к задачамПолучайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Junior — Senior
4
Влияние функции на переданный слайс
Условие задачи
Имеется слайс, созданный с начальной ёмкостью 2. После того как в него добавлен один элемент 1, вызывается функция add() с параметром 2. Вопрос: отразятся ли изменения внутри функции на исходном слайсе.
arr := make([]int, 0, 2) // len 0 cap 2 [ , ]
arr = append(arr, 1) // len = 1 , cap = 2 [1, ]
add(arr, 2) // len = 1 , cap = 2 [1, ] → функция не меняет исходный слайс
func add(arr []int, elem int) {
arr = append(arr, elem) // [1, 2] но это копия
}
В примере показано, что внутри функции создаётся новая копия заголовка слайса, поэтому исходный массив остаётся без изменений.