我想使用Rust中匹配语句的条件来执行0=a和x2B;5. 想做什么
我想使用Rust的match语句在任意范围内和其他情况下对变量进行不同的处理。在这种情况下,代码将如下所示 适用规范我想使用Rust中匹配语句的条件来执行0=a和x2B;5. 想做什么,rust,rust-cargo,Rust,Rust Cargo,我想使用Rust的match语句在任意范围内和其他情况下对变量进行不同的处理。在这种情况下,代码将如下所示 适用规范 //idx是usize变量 //num使用variabel 让res:Option=match idx{ 1..=num-5=>{ Some(func()) }, _=>没有, }; 我收到了一个错误。 无法在模式中引用运行时值。您也不能进行操作 改用常量 const num :i32 = 19 - 5; let res: Option<f64> = match
//idx是usize变量
//num使用variabel
让res:Option=match idx{
1..=num-5=>{
Some(func())
},
_=>没有,
};
我收到了一个错误。
无法在模式中引用运行时值。您也不能进行操作 改用常量
const num :i32 = 19 - 5;
let res: Option<f64> = match idx {
1..=num => {
Some(func())
},
_ => None,
};
const num:i32=19-5;
让res:Option=match idx{
1..=num=>{
Some(func())
},
_=>没有,
};
您可以检查火柴护盾上的动态范围:
fn main(){
设idx=6;
设num=15;
让res=匹配idx{
n如果(1..=num-5).包含(&n)=>Some(“foo”),
_=>没有,
};
println!(“{:?}”,res);
}
Uhm,编译器似乎没有真正理解它。顺便说一句,这只是一个实验性功能。在更新的示例中,删除
Some(func())
之后的逗号。更新中的错误与添加到文章中的代码不符。我已经恢复了编辑,因为它似乎没有给原始问题添加任何内容。如果你在解答中遇到了问题,考虑在下面的评论中提出答案或者问一个新的问题——编辑问题应该被用来回答评论,增加对原始问题的澄清或细节。我想这可能是重复的。答案是可以的。但我认为这并不适用。我想num会随着运行时间而变化。谢谢你的回答。我在更新部分对其进行了修改,收到了更多错误。
const num :i32 = 19 - 5;
let res: Option<f64> = match idx {
1..=num => {
Some(func())
},
_ => None,
};