知识卡片
切片是数组的视图而非容器
内容
切片本身并不存储数据,它只是对某个底层数组一段连续元素的”视图”:真正的数据始终放在数组 里,切片记录的是”从哪开始、看多长”。发散:这和[[指针是绕过值传递的工具]]是同一种思路的延伸—— 把”共享同一块内存”当作默认能力而非特例,好处是切片传递轻量高效,代价是必须清楚谁和谁共享 着底层数组,否则修改会在意想不到的地方冒出来。
参考来源
- 位置:《Head First Go语言程序设计》第6章《追加的问题:切片》(源文件:_epub-src/index_split_001.html)
- 结论依据:原文在该章节围绕“切片本身并不存储数据,它只是对某个底层数组一段连续元素的"视图":真正的数据始终放在数组里,切片记录的是"从哪…”给出定义、示例或限制条件;摘录中的术语、代码片段或对比关系直接支撑本卡片的结论。
- 原始内容:引,从底层数组的开始索引到数组结尾之间 的所有元素都会被包含到结果切片中。 底层数组 正如我们之前提到的,切片并不会自己保存任何数据,它仅仅是底 层数组的元素的视图。你可以把切片看作一个显微镜,聚焦在胶片(底 层数组)内容的特定部分。 当你使用切片的时候,你仅仅可以操作通过切片可见的部分。 它甚至可以有多个切片都指向相同的底层数组。每一个…