Назад к задачам
Junior — Senior
9

Поведение при копировании и расширении среза

Получайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Условие задачи

В примере сначала создаётся срез arr через make, затем формируется второй срез newArr как полное срезание arr[:]. После этого к newArr последовательно добавляются элементы при помощи append. Нужно определить, как изменятся длина и ёмкость newArr после каждой операции и как эти изменения отразятся на исходном срезе arr.

arr := make([]int, 0, 2)        // len 0, cap 2
arr = append(arr, 1)            // len 1, cap 2

newArr := arr[:]                // len = 1, cap = ?
newArr = append(newArr, 2)      // что будет с исходным?
newArr = append(newArr, 3)      // что будет с исходным?