我刚刚开始学习 Rust,到达我读到的控制流部分break可以返回一个值(循环是一个表达式),它也可以使用标签突破特定循环,例如break 'counting_up。
所以我的问题是:
是否可以将两者结合起来?即通过命名它来打破特定的循环并返回一个值?
如果是这样,分配+声明循环的语法是什么?
的语法是什么break?
以下是两种可能性,但两种语法都无法编译:
fn main() {
let mut count = 0;
// would this do?
let result = 'counting_up: loop {
println!("count = {count}");
let mut remaining = 10;
loop {
println!("remaining = {remaining}");
if remaining == 9 {
break;
}
if count == 2 {
// break count*10, 'counting_up;
// or should it be:
break 'counting_up, count*10;
}
remaining -= 1;
}
count += 1;
};
println!("End count = {count}");
}
Run Code Online (Sandbox Code Playgroud)
是的,没有分隔符,只是break 'label value:
fn main() {
let mut count = 0;
let result = 'counting_up: loop {
println!("count = {count}");
let mut remaining = 10;
loop {
println!("remaining = {remaining}");
if remaining == 9 {
break;
}
if count == 2 {
break 'counting_up count*10;
}
remaining -= 1;
}
count += 1;
};
println!("End count = {count}");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
106 次 |
| 最近记录: |