[英]How do you pass a const or static parameter to a function in Rust?
如何将 const 或 static 传递给 Rust 中的 function?
为什么这些不起作用?:
const COUNT: i32 = 5;
fn main() {
let repeated = "*".repeat(COUNT);
println!("Repeated Value: {}", repeated);
}
和
static COUNT: i32 = 5;
fn main() {
let repeated = "*".repeat(COUNT);
println!("Repeated Value: {}", repeated);
}
他们回来了:
mismatched types
expected `usize`, found `i32`
但是这些工作正常吗?:
fn main() {
let repeated = "*".repeat(5);
println!("Repeated Value: {}", repeated);
}
和
fn main() {
let count = 5;
let repeated = "*".repeat(count);
println!("Repeated Value: {}", repeated);
}
当然const
的工作方式与5
相同吗? 两者都应该是 i32 类型
= "*".repeat(COUNT)
对比
= "*".repeat(5)
同样,“静态”不应该像“让”一样工作吗? 我在这里想念什么? 如何使用 const 作为 function 调用的参数?
它与COUNT
的定义无关。 repeat
需要一个usize
,而不是u32
。
您要么需要将COUNT
定义为 usize
const COUNT: usize = 5;
或者在调用repeat
时将COUNT
转换为usize
let repeated = "*".repeat(COUNT as usize);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.