01 / 05准备播放
先看一个整数 slice
a 保存两个 int 元素
SLICE OWNERSHIP / int 元素复制描述 ≠ 复制元素存储
先有 aCODE BLOCK函数片段 · 省略 package main / import "fmt"
执行第 2 行
func main() {
a := []int{1, 2}
b := a
b[0] = 9
c := make([]int, len(a))
copy(c, a)
c[0] = 7
fmt.Println(a, b, c)
}
先建立 a;完整函数最后读取 a、b、c。
MEMORY MAPa 先拥有两个 int
描述与存储aslice 描述
读到 [1 2]bslice 描述副本
尚未声明a 的元素存储底层数组 · 2 个 int
12
当前只有 a 看到这份数组cslice 描述
尚未建立等待 make + copy独立存储 · 2 个 int
——
还没有 cslice 描述会记录从哪里开始、能读多少个元素;这里的元素类型是 int。
等待运行结果
旁白
点一下播放即可。也可以只听声音,或拖动进度跳到想看的位置。
0:001:21
正在准备本课音轨与图解。首次播放需要点一下。