Bernadette Akinyi

嘿,技术爱好者!🌸

欢迎来到我的 Go 系列!我将分享我的学习心得,用我能理解的方式呈现,包括我犯过的错误,以及那些让一切豁然开朗的“啊哈!”时刻。无论你也在学习 Go,还是只是对它感兴趣,我希望你能从中有所收获。

欢迎在评论区分享你的任何见解或经验。

今天的话题是…… 请鼓掌! 切片。让我们深入探讨!

那么,切片到底是什么?

当我第一次接触 Go 中的切片时,我以为它们只是数组的另一个名字。事实证明,它们不是!

切片是对底层数组的动态视图。它在内部由一个称为切片头的小型数据结构表示。切片头并不存储元素本身,而是存储指向底层数组的指针,以及其长度容量。这一认识帮助我理解了为什么修改切片也可能修改原始数组。

另一个有趣且方便的地方是,与固定大小的数组相比,切片具有更大的灵活性。切片可以使用append()等函数进行增长,或者通过重新切片来操作底层数组的较小部分。这种灵活性也是切片在 Go 中被如此频繁使用的原因之一。