Функция copy
Функция copy копирует элементы из исходного слайса
в целевой слайс. В первый параметр мы передаем целевой
слайс (куда копируем), во второй параметр мы передаем
исходный слайс (откуда копируем). Функция возвращает
количество скопированных элементов, которое равно
минимальной длине из двух слайсов.
Синтаксис
gocopy(dst, src)
Пример
Давайте скопируем элементы из одного слайса в другой:
gopackage 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)
}
Результат выполнения кода:
go"Copied: 3"
"dst: [a b c]"
Пример
Давайте скопируем все элементы в слайс большей длины:
gopackage 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)
}
Результат выполнения кода:
go"Copied: 3"
"dst: [a b c ]"
Пример
Давайте скопируем часть элементов с помощью среза:
gopackage 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)
}
Результат выполнения кода:
go"Copied: 2"
"dst: [3 4]"
Пример
Давайте скопируем элементы между существующими слайсами с перезаписью:
gopackage 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)
}
Результат выполнения кода:
go"Copied: 3"
"dst: [a b c]"