HOME/Golang Tips/

golangでスライスの複製

Article Outline
TOC
Collection Outline

スライスの複製

  • Golangではスライスを := を使って代入しても、参照するポインタが同じため、新しく宣言した方を変更したら元のやつも変更される。

s := []int{0, 10, 20, 30}
t := s 
  • それを回避するには、makeで同じ大きさのスライスの領域を確保してから、copyで複製をする。
s := []int{0, 10, 20, 30}
t := make([]int, len(s))
n := copy(t, s)