Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗goPmSlSh 149 of 350 menu
◀ ▶

Общий массив в Go

Вырезка смотрит на тот же кусок памяти, что и исходный срез. Это не копия всех чисел: оба имени могут указывать на перекрывающиеся ячейки. Поэтому смена элемента в одном месте видна в другом, если номера совпадают.

Возьмем участок и изменим его первый элемент, затем выведем исходный ряд:

nums := []int{10, 20, 30, 40} part := nums[1:3] part[0] = 99 fmt.Println(nums) fmt.Println(part)

В nums вторым числом станет 99, потому что part[0] - это та же ячейка, что nums[1]. Вырезка и исходный срез делят один базовый массив.

Даны переменные:

base := []int{1, 2, 3, 4} head := base[0:2]

Поставьте 9 в head[1] и выведите base.

Даны переменные:

row := []int{5, 6, 7, 8} tail := row[2:]

Измените первый элемент tail и проверьте, изменился ли row в той же позиции.

Скажите, копирует ли вырезка все элементы в новый массив автоматически.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить