В чем особенность функции copy в Go

«В чем особенность функции copy в Go» — вопрос из категории Golang, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Функция copy в Go копирует элементы из исходного слайса (src) в целевой слайс (dst). Возвращает количество скопированных элементов, которое равно минимуму из длин dst и src. Не создает новый слайс, а модифицирует существующий dst.

Особенности:

  1. Работает только с слайсами (не с массивами).
  2. Не выделяет память.
  3. Безопасна при перекрытии слайсов (можно копировать в самого себя).
src := []int{1, 2, 3}
dst := make([]int, 2) 
n := copy(dst, src) // n = 2, dst = [1, 2]