我希望有一个接受长度参数的函数,并返回一个具有该长度的数组:
fn make_zeros(length: &i16) -> [f64; length] {
return [0; length]
}
是否有一种质朴的方法,或者我应该使用Vec
?
答案 0 :(得分:3)
目前,类型不能通用于数字,这是必需的。人们普遍预计,某些方面会发生某些事情,但没有时间表。
你的例子最终会是这样的:
fn make_zeroes<N: usize>() -> [f64; N] {
return [0; N]
}
请注意,这需要常量;它永远不可能用任何其他常量来做 - 在编译时必须知道一个类型。
答案 1 :(得分:2)
当然,您可以使用宏来为静态已知长度提供函数的版本。查看具有类似方案的某些宏的arrayref包。