@krista Чтобы скопировать один slice в другой на Golang Вы можете использовать функцию copy() в go, посмотрите пример как это работает ниже:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
package main import "fmt" func main() { // Создание нового slice slice := []string{"тест", "тест 2", "тест 3"} slice2 := make([]string, len(slice)) count := copy(slice2, slice) // Новый Slice: [test test1 test2] fmt.Println("Новый Slice: ", slice2) // Скопировано элементов: 3 fmt.Println("Скопировано элементов: ", count) } |
@krista Вы можете скопировать slice с помощью функции copy
. Она имеет следующий синтаксис:
1
|
func copy(dst, src []Type) int |
Где Type
- тип элементов slice, а dst
и src
- соответственно, назначение и источник слайса. Функция возвращает количество скопированных элементов.
Пример:
1 2 3 4 5 6 7 8 |
src := []int{1, 2, 3, 4, 5} dst := make([]int, len(src)) // Скопируем src в dst n := copy(dst, src) fmt.Println(dst) // [1 2 3 4 5] fmt.Println(n) // 5 |
Обратите внимание, что размеры dst
и src
должны быть равны или dst
должен быть достаточно большим, чтобы вместить все элементы src
. В противном случае будет возвращена ошибка panic: runtime error: slice bounds out of range
.