Копирование массива в Go
Присваивание массива копирует все значения, а не связывает два имени. Вторая переменная получает свой экземпляр данных: столько же ячеек с теми же числами на момент записи.
После копии изменение одного массива не трогает другой. Чтобы увидеть это, изменим ячейку в первой переменной и сравним вывод обеих:
origin := [3]int{10, 20, 30}
copy := origin
origin[0] = 99
fmt.Println(origin)
fmt.Println(copy)
В origin первым числом станет 99,
а copy сохранит 10, 20
и 30. Имена указывают на разные копии
одного и того же начального содержимого.
Дан следующий массив:
base := [3]int{10, 20, 30}
Скопируйте base в twin через =.
Измените base[2] на 0.
Выведите оба массива.
Даны переменные:
left := [2]string{"same", "pair"}
right := left
Поменяйте строку только в left[0]
на "other". Выведите обе переменные
и скажите, совпадет ли вторая ячейка в right.
Скажите, изменится ли backup после
backup = mainRow, если потом менять
только mainRow, не трогая backup.