Вопрос: Как скопировать slice и почему простое присваивание не копирует элементы?
Go
Junior
Без компании
Вопрос: Как скопировать slice и почему простое присваивание не копирует элементы?
Ответы
Присваивание копирует только slice-header (указатель/len/cap), элементы остаются общими. Для копирования используют copy или append в новый slice.
Вариант 1: copy
```go
package main
import "fmt"
func main() {
a := []int{1, 2, 3}
b := make([]int, len(a))
copy(b, a)
b[0] = 99
fmt.Println(a, b)
}
```
Вариант 2: append в пустой
```go
c := append([]int(nil), a...)
```