golangでスライスのdeep copy
結局http://blog.golang.org/go-slices-usage-and-internalsこれ読んだほうが早いのだけれど
package main
import (
"fmt"
)
func main() {
s := []int{1, 2, 3, 4, 5}
s_ := s[3:5]
s__ := make([]int, cap(s))
copy(s__, s)
fmt.Println(s, s_) // [1 2 3 4 5] [4 5]
s[4] = 1
fmt.Println(s, s_, s__) // [1 2 3 4 1] [4 1] [1 2 3 4 5]
}