我正在读一本书并且遇到了关于传递参数的话题。
这本书说将一个数组的片段传递给一个函数需要24个字节。并且它声明最好传递切片,因为底层数组不会被复制。但是不传递指针只需要8个字节?
书:开始行动
开销是否太小以至于传递切片是要走的路?与传递指针相对应
答案 0 :(得分:2)
复制任何低于缓存行的内容(通常在大多数常见CPU上为128字节)基本上花费相同的时间,因此8字节和24之间没有真正的区别。通常花费更多时间来取消引用指针而不是复制任何内容小。
由于通过指针操作数组的默认方法是在一个切片中,因此使用切片而不是指向数组的指针更为惯用。然而,书中的引用是指传递一个数组值,而不是通过一个指针,将复制整个数组。