给出了一个示例性的
type container struct {
arr int[]
}
我想 * 递归地 * 操作它的arr
数组字段值。
我有两个功能选项:
container
上的(pointer receiver)* 方法 *,直接访问其arr
数组- a function,接收
arr
切片作为参数 - 在任何情况下,必须将交替的开始和结束索引作为参数传递给每个递归调用。*
问题:
是否存在任何已知的、理论上有利或不利的影响,主要是在性能¹和内存占用方面,通过使用一种实现而不是另一种实现,并考虑arr
将保持在10^6
和10^9
元素之间?
¹运行(非专业基准)测试实现,性能似乎没有显著差异
1条答案
按热度按时间vsnjm48y1#
我认为你可以使用这两个选项,但我建议使用指向数组的指针,因为它可以保护你免受意外追加到切片,这可能会导致整个切片内存的复制。
另外请记住,您不能以这种方式使用数组:
输出:
但是你可以将array转换为slice而不复制它:
输出: