在下面的代码中:
fn a<T,N>(arr: & [T; N]) {
}
为什么我要
error[E0423]: expected value, found type parameter `N`
--> src/lib.rs:1:22
|
1 | fn a<T,N>(arr: & [T; N]) {
| ^ not a value
https://play.rust-lang.org/?version=stable&mode=调试&edition=2021&gist=8023f8d13b34369ec04538883630617ba
我知道我可以只期望&[T]
,但我想如果我期望固定大小,那么它需要更强的打字和无边界检查
错误消息告诉您:您将N
声明为类型参数,但数组需要值。因此,您需要将N
声明为一个值,如const泛型公告中所示。这意味着在它前面加上const
关键字,并给它一个类型:
fn a<T, const N: usize>(arr: &[T; N]) {
}