# N])
Вопрос:
В приведенном ниже коде:
fn a<T,N>(arr: amp; [T; N]) {
}
почему я получаю
error[E0423]: expected value, found type parameter `N`
--> src/lib.rs:1:22
|
1 | fn a<T,N>(arr: amp; [T; N]) {
| ^ not a value
?
Я знаю, что могу ожидать только amp;[T]
, но я предполагаю, что если я ожидаю с фиксированным размером, то это будет более сильная типизация, а также без проверки привязки
Ответ №1:
Сообщение об ошибке сообщает вам: вы объявили N
как параметр типа, но массивы ожидают значения. Итак, вам нужно объявить N
как значение, как показано, например, в объявлении const generics. Это означает добавление к нему префикса с const
ключевым словом и присвоение ему типа:
fn a<T, const N: usize>(arr: amp;[T; N]) {
}