Выбор ответа Middle Слайсы и мапы изнутри обновлено

Полное выражение среза a[low:high:max]

Вопрос

Зачем нужен срез вида a[1:3:3]?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Ограничивает cap, чтобы append не затёр исходный массив. Третий индекс задаёт cap = max - low.

Варианты ответа

  1. Он сразу копирует выбранные элементы в новый массив
  2. Ограничивает cap, чтобы append не затёр исходный массивправильный ответ
  3. Он задаёт шаг среза, как a[1:3:2] в Python
  4. Он делает слайс только для чтения до конца функции

Разбор

Третий индекс задаёт cap = max - low. При cap == len любой append выйдет за ёмкость и выделит новый массив, исходный не пострадает. Сам срез ничего не копирует, это всё ещё окно в тот же массив. Шага у срезов в Go нет. Слайсов только для чтения в языке тоже нет.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.