Syntax 有没有一种方法可以在循环内分配变量';什么是条件表达式?

Syntax 有没有一种方法可以在循环内分配变量';什么是条件表达式?,syntax,rust,Syntax,Rust,Rust中是否有与此C表达式等价的表达式 intx; 而((x=get_num())

Rust中是否有与此C表达式等价的表达式

intx;
而((x=get_num())<5){
printf(“x是%d,但小于5\n”,x);
}
get_num()
是一个接受用户输入并返回整数的函数

到目前为止,我能想到的最好的方法是:

while let Some(x) = {let y = get_num(); if y < 5 {Some(y)} else {None}}  {
    println!("x is {}, but less than 5", x);
}
while let Some(x)={let y=get_num();如果y<5{Some(y)}其他{None}{
println!(“x为{},但小于5”,x);
}

从Rust 1.28开始,您可以使用:

在语法上是等价的

// doesn’t exist yet!
while let x = get_num() && x < 5 {
    println!("x is {}, but less than 5", x);
}
//还不存在!
而设x=get_num()&&x<5{
println!(“x为{},但小于5”,x);
}

从Rust 1.28开始,您可以使用:

在语法上是等价的

// doesn’t exist yet!
while let x = get_num() && x < 5 {
    println!("x is {}, but less than 5", x);
}
//还不存在!
而设x=get_num()&&x<5{
println!(“x为{},但小于5”,x);
}

这实际上是一个有效的C表达式吗…?是的,C编译器甚至有一个警告,确保您在赋值周围加上额外的括号,以确保您的意思不是==而不是=。它名为-Wparenthesis@Ry-显然,它不是一个有效的C表达式,(但我希望它能在某个时候出现;)我现在看到了错误。修正了。这真的是一个有效的C表达式吗…?是的,C编译器甚至有一个警告,确保你在赋值周围加了额外的括号,以确保你的意思不是==而不是=。它名为-Wparenthesis@Ry-显然,它不是一个有效的C表达式,(但我希望它能在某个时候出现;)我现在看到了错误。修正了。哦,天哪,那些是一些讨厌的for循环迭代器。我同意,无聊更好。哦,天哪,那些是一些讨厌的for循环迭代器。我同意,无聊更好。
// doesn’t exist yet!
while let x = get_num() && x < 5 {
    println!("x is {}, but less than 5", x);
}