1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| // 复制一个 slice s2 := s1[:2] fmt.Printf("s2(%p): %v, len: %d, cap: %d\n", &s2, s2, len(s2), cap(s2)) // s2(0xc00000c120): [1 3], len: 2, cap: 4s1[0] = 10 // 这里可以发现,s1[0] s2[0] 都被修改为了 10 fmt.Printf("s1(%p): %v, len: %d, cap: %d\n", &s1, s1, len(s1), cap(s1)) // s1(0xc00000c080): [10 3], len: 2, cap: 4 fmt.Printf("s2(%p): %v, len: %d, cap: %d\n", &s2, s2, len(s2), cap(s2)) // s2(0xc00000c120): [10 3], len: 2, cap: 4 s1 = append(s1, 5, 6, 7, 8) s1[0] = 11 // 这里可以发现,s1[0] 被修改为了 11, s2[0] 还是10 fmt.Printf("s1(%p): %v, len: %d, cap: %d\n", &s1, s1, len(s1), cap(s1)) // s1(0xc00011c020): [11 3 5 6 7 8], len: 6, cap: 8 fmt.Printf("s2(%p): %v, len: %d, cap: %d\n", &s2, s2, len(s2), cap(s2)) // s2(0xc00011c0c0): [10 3], len: 2, cap: 4
|