将固定长度数组传递给函数

Bla*_*llo 6 go

我想写一个函数,可以接受固定长度的数组,但不同的数组有不同的长度。

我知道我可以用 arr[:] 传递切片(该函数将接受 []T),但是还有另一种方法,也许更有效吗?

我正在使用一个结构,我想用固定长度的数组来维护(出于文档目的),因此在声明时到处使用切片对于我的目的来说并不是最佳选择。

apx*_*pxp 6

不,没有办法传递不同大小的数组,因为数组的长度是类型的一部分。

例如[3]int是不同类型的 then [2]int

在 Go 中,不建议使用数组,而应该使用切片(https://golang.org/doc/ effective_go.html #arrays)。

  • 不使用数组的另一个原因是,当将数组作为参数传递时,它将创建一个副本,无论如何这是行不通的。 (5认同)