常用数据结构
切片(slice)性能及陷阱
在 C 语言中,数组变量是指向第一个元素的指针,但是 Go 语言中并不是。Go 语言中,数组变量属于值类型(value type),因此当一个数组变量被赋值或者传递时,实际上会复制整个数组。例如,将 a 赋值给 b,修改 a 中的元素并不会改变 b 中的元素:
1 | a := [...]int{1, 2, 3} // ... 会自动计算数组长度 |
在 C 语言中,数组变量是指向第一个元素的指针,但是 Go 语言中并不是。Go 语言中,数组变量属于值类型(value type),因此当一个数组变量被赋值或者传递时,实际上会复制整个数组。例如,将 a 赋值给 b,修改 a 中的元素并不会改变 b 中的元素:
1 | a := [...]int{1, 2, 3} // ... 会自动计算数组长度 |
原文作者:Modnar Shen
原文链接:https://tech.modoo.zone/2024/05/HighPerfInGo/
发表日期:May 20th 2024, 11:33:00 am
更新日期:May 20th 2024, 11:36:24 am
版权声明:本文采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可