我想知道是否有办法将适当大小的切片传递给需要数组的函数?
例如,是否有理由不允许我执行以下操作?
func p(arr [4]int) {
for _, v := range arr {
fmt.Print(v)
}
}
func main() {
data := make([]int, 10)
for i, _ := range data {
data[i] = i
}
p(data[0:4]) // error
}
我知道我可以创建一个副本:
arr := [4]int{}
copy(arr[:], data)
p(arr)
但这不就是创建一个不必要的副本吗?(因为我猜测arr必须在堆栈上制作另一个副本)
相关分类