Loading... ## 问题描述 拷贝大切片一定比小切片代价大吗? ## 解答 并不是,拷贝所有切片的代价都是一样的。 看一下源码,就很清楚了: ```go type slice struct { array unsafe.Pointer len int cap int } ``` 因为切片的底层有三个字段(一个 `unsafe.Pointer`,两个 `int`)。 其中 `unsafe.Pointer` 指向的是切片底层数组的指针,这是切片的存储空间,第二个字段是切片的长度,第三个字段是切片的容量。 将一个切片变量分配给另一个变量只会复制三个机器字,**所以拷贝大切片与小切片的代价是一样的。** 大切片与小切片的区别无非就是 `len` 和 `cap` 这两个值的大小不一样。 ## 李培冠博客 欢迎访问我的个人网站: 李培冠博客:[lpgit.com](https://lpgit.com) Last modification:September 23rd, 2020 at 09:52 am © 允许规范转载 Support ×Close Appreciate the author Sweeping payments Pay by AliPay Pay by WeChat
大佬,能不能借您的网站模板用用呀,接触java,想写自己的博客 写得好好哟,我要给你生猴子!