В предыдущей статье, я кратко рассказал о работе с массивами с слайсами в Go. Ниже будут задания и вопросы на понимание пройденной темы. Так же для самопроверки, будут представлены решения. Для лучшего понимания рекомендуется запускать примеры локально и выводить значения len и cap после каждой операции со слайсами. Почему так произошло? Слайс не копирует данные, а создаёт представление над частью существующего слайса. Поэтому при изменении элемента в новом слайсе, изменения происходят и в исходном. Индексы в новом слайсе начинаются с 0, но указывают на соответствующие элементы родительского слайса. Ожидаемый вывод: [5 5 5 5 5 5]
[1 2 3 4 5] Почему так произошло?
Потому что append при заполненной ёмкости создаёт новый слайс, и изменения идут уже в нём. Исходный sl остаётся прежним. Ожидаемый вывод: [5 5 5 5]
[5 5 5 5] Почему так произошло?
Потому что мы меняем элементы слайса напрямую, без создания нового слайса через append. Массив - это фиксированная структура данных, кот