Вопрос: Как скопировать 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...) ```