知识卡片

数组复制成本明确

专业/工作 · 470.b.1.a.1.c.3.a.6.a.2.d.1.a.1.a.1.a

内容

数组是值类型,赋值和传参会复制整个数组;大数组应考虑指针或切片。发散:Go 的值语义清晰,但清晰不等于没有成本。

参考来源

- 位置:《Go语言入门到实战(共3册)》第30章《Go语言学习笔记:第5章 数据》(源文件:_epub-src/text/part0064.html) - 结论依据:原文围绕“可改用指针或切片,以此避免数据复制”给出定义、机制、流程、对比或限制条件,本卡片据此提炼可迁移的语言/工程结论,并补充了边界或实践启发。 - 原始内容:20] b: 0xc820076060, [10 20] x: 0xc8200760a0, [10 20] 如果需要,可改用指针或切片,以此避免数据复制。 func test(x *[2]int) { fmt.Printf("x: %p, %v\n", x, *x) x[1] += 100 } fu……