スライスは配列への参照のようなものです
スライスはデータを保存せず、基になる配列のセクションを記述するだけです。
スライスの要素を変更すると、それに対応する基になる配列の要素が変更されます。
同じ基になる配列を共有する他のスライスは、その変更を確認します。
package main
import "fmt"
func main() {
names := [4]string{
"John",
"Paul",
"George",
"Ringo",
}
fmt.Println(names)
a := names[0:2]
b := names[1:3]
fmt.Println(a, b)
b[0] = "XXX"
fmt.Println(a, b)
fmt.Println(names)
}