知识卡片

数组传递会复制

专业/工作 · 471.b.3.a

内容

Go 数组是值语义,赋值或传参会复制整个数组。发散:值语义让修改边界清晰,但大数组复制会带来明显成本。这与[[切片是三字段视图]]的引用式传递形成对照,也呼应[[指针接收者表达可变]]里值语义与可变性的取舍。

参考来源

- 位置:《Go语言实战》第4章《数组、切片和映射》(源文件:_epub-src/OEBPS/Text/part0014.xhtml) - 结论依据:原文围绕“数组”给出定义、机制、流程、对比或限制条件,本卡片据此提炼可迁移的 Go 语言/工程结论,并补充边界或实践启发。 - 原始内容:第4章 数组、切片和映射 本章主要内容 数组的内部实现和基础功能 使用切片管理数据集合 使用映射管理键值对 很难遇到要编写一个不需要存储和读取集合数据的程序的情况。如果使用数据库或者文件,或者访问网络,总需要一种方法来处理接收和发送的数据。Go语言有3种数据结构可以让用户管理集合数据:数组、切片和映……