Rust允许使用一种do-while循环,例如:
C语言的样式为:
可以用Rust编写如下代码:
C语言的样式为:
do {
something();
} while (test());
可以用Rust编写如下代码:
while {
something();
test()
}{}
然而,在这种情况下使用break存在一个问题:
所以这段C代码:
do {
if (something()) {
break;
}
} while (test());
无法用Rust编写:
while {
if (something()) {
break;
}
test()
}{}
无法编译,报错信息为cannot break outside of a loop
。
有没有办法跳出这种形式的while循环?
注1)在这种情况下使用 do {...} while test()
流程控制,而不是 while test() {...}
的原因是,当进入循环时,test()
将为 false
。
注2)当使用 while {...}
流程控制时,在代码主体中调用 continue
将跳过末尾的 break
检查。
loop { /* 代码 */ if test() { break; } }
? - Neikosbreak
和continue
,最好切换到具有自定义放置断点逻辑的loop
。 - user4815162342;
来确定是否返回一个值。) Rust 仍然是一门年轻的语言,还有待观察哪些模式足够有用,被社区认可为习惯用语。 - user4815162342