我为 const 泛型类型提供默认值,但 Rust 编译器告诉我它“无法推断 const 参数的值”。似乎忽略了默认值。我使用这个功能有错吗?这是它应该如何工作的吗?那么为什么要使用默认值呢?我用的是每晚 1.60。
const DEFAULT_N: usize = 73;
struct Foo<const N: usize = DEFAULT_N>;
impl<const N: usize> Foo<N> {
fn new() -> Self {
println!("N is: {}", N);
Self
}
}
fn main() {
Foo::new();
}
我是这样工作的
const DEFAULT_N: usize = 73;
struct Foo<const N: usize = DEFAULT_N>;
impl<const N: usize> Foo<N> {
fn new() -> Self {
println!("N is: {}", N);
Self
}
}
fn main() {
let f:Foo = Foo::new(); // just added the asked type annotation here
}
rust repo 上有一个关于此的问题: rust-lang/rust/issues/98931