arrays - 传递 slice 而不是指针

标签 arrays go

我在读一本书时偶然发现了有关传递参数的主题。

书上说将数组的一部分传递给函数需要 24 个字节。并且它声明最好传递 slice ,因为不会复制底层数组。但是传递一个指针不是只需要 8 个字节吗?

书:行动起来

开销是否如此之小以至于传递 slice 是可行的方法?与传递指针相比

最佳答案

复制任何小于缓存行(在大多数常见 CPU 上通常为 128 字节)的内容基本上需要相同的时间,因此 8 字节和 24 字节之间没有真正的区别。通常更多的时间花在取消引用指针上而不是复制任何东西上小的。

由于通过指针操作数组的默认方法是在 slice 中,因此使用 slice 而不是指向数组的指针更为惯用。然而,书中引用的是传递数组值,而不是通过指针,复制整个数组。

关于arrays - 传递 slice 而不是指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35875217/

相关文章:

Java 木瓦对

postgresql - 如何设置 pgx 以从数据库中获取 UTC 值?

firebase - 如何在 Go 中验证 App Engine 上的 Firebase ID token

file - 如何获取文件的当前位置

objective-c - 从另一个数组添加对象

java.lang.ArrayIndexOutOfBoundsException : length=4; index=4 length array 异常

java - 当只有 1 条数组数据(自己的数据类)时,如何从数组中选择数据

eclipse - 将现有的 Go 项目导入 eclipse

function - 通过对象而不是指向它的指针调用带有指针接收器的方法?

c - 将两个指针交换为指针