Вступить в клуб →
средняявопросОсновы Go: типы, ошибки, интерфейсы

append в подсрез изменил элементы исходного среза

В коде разбора батча событий встретилось такое:

a := []int{1, 2, 3, 4, 5}
b := a[:2]
b = append(b, 99)
fmt.Println(a)

Что окажется в срезе a после append?

  • `[1 2 3 4 5]` — `b` независим, `append` выделил новый массив
  • `[1 2 99 4 5]` — `b` делит массив с `a`, запись пошла в существующую ячейку
  • `[1 2 3 4 5 99]` — элемент дописался в конец исходного среза
  • `[1 2 99]` — длина `a` уменьшилась до длины `b`

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела