syntax - 有没有办法在循环的条件表达式中分配一个变量?

标签 syntax rust

<分区>

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

int x;
while ((x = get_num()) < 5) {
    printf("x is %d, but less than 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);
}

最佳答案

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

for x in iter::repeat_with(get_num).take_while (|x| *x < 5) {
    println!("x is {}, but less than 5", x);
}

但无聊可能更好:

loop {
    let x = get_num();

    if x >= 5 {
        break;
    }

    println!("x is {}, but less than 5", x);
}

Eventually, there might在语法上更接近。

// doesn’t exist yet!
while let x = get_num() && x < 5 {
    println!("x is {}, but less than 5", x);
}

关于syntax - 有没有办法在循环的条件表达式中分配一个变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51529567/

相关文章:

Java语法查询

sql-server - 使用 T-SQL 高效删除记录而不使用 IN 子句

c - 'less'程序源码中的不常用函数定义

json - Rust 和 JSON 序列化

javascript - 为什么调用匿名函数表达式有两种不同的语法?

arrays - 如何修复 bash 脚本中的数组错误?

string - 在 Rust 中查询结构向量

rust - 由于需求冲突,无法推断出 autoref 的适当生命周期

Rust Diesel 一对一关系

rust - 如何绘制范围?