Since slices share underlying arrays, modifications can have unexpected effects:
a := []int{1, 2, 3, 4, 5}
b := a[1:3] // b is [2, 3]
b[0] = 99 // also changes a!
fmt.Println(a) // [1, 99, 3, 4, 5]
If you need independent data, use copy() to create a separate slice. Understanding this sharing behavior helps you avoid bugs when working with slices.