繁体   English   中英

如何将 const 或 static 参数传递给 Rust 中的 function?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM