Функция copy
Функция copy копирует элементы из исходного слайса
в целевой слайс. В первый параметр мы передаем целевой
слайс (куда копируем), во второй параметр мы передаем
исходный слайс (откуда копируем). Функция возвращает
количество скопированных элементов, которое равно
минимальной длине из двух слайсов.
Синтаксис
copy(dst, src)
Пример
Давайте скопируем элементы из одного слайса в другой:
package main
import "fmt"
func main() {
src := []string{"a", "b", "c", "d", "e"}
dst := make([]string, 3)
n := copy(dst, src)
fmt.Printf("Copied: %d\n", n)
fmt.Println("dst:", dst)
}
Результат выполнения кода:
"Copied: 3"
"dst: [a b c]"
Пример
Давайте скопируем все элементы в слайс большей длины:
package main
import "fmt"
func main() {
src := []string{"a", "b", "c"}
dst := make([]string, 5)
n := copy(dst, src)
fmt.Printf("Copied: %d\n", n)
fmt.Println("dst:", dst)
}
Результат выполнения кода:
"Copied: 3"
"dst: [a b c ]"
Пример
Давайте скопируем часть элементов с помощью среза:
package main
import "fmt"
func main() {
src := []int{1, 2, 3, 4, 5}
dst := make([]int, 2)
n := copy(dst, src[2:4])
fmt.Printf("Copied: %d\n", n)
fmt.Println("dst:", dst)
}
Результат выполнения кода:
"Copied: 2"
"dst: [3 4]"
Пример
Давайте скопируем элементы между существующими слайсами с перезаписью:
package main
import "fmt"
func main() {
dst := []string{"x", "y", "z"}
src := []string{"a", "b", "c", "d"}
n := copy(dst, src)
fmt.Printf("Copied: %d\n", n)
fmt.Println("dst:", dst)
}
Результат выполнения кода:
"Copied: 3"
"dst: [a b c]"