此代码的目的是从 1 到 4 循环并停止。我的问题是为什么如果我在 else 语句 (;) 中添加或保留分号并不重要……代码编译得很好。最好的方法是什么?添加分号还是保留它?
fn main() {
let mut var = 1;
loop{
println!("It is now {}", var);
if var >= 4 {
println!("Finished the loop");
break;
} else {
var = var + 1;
}
}
}
Run Code Online (Sandbox Code Playgroud)
通常,尾随分号确定块的返回值。如果省略分号,则返回值是块中最后一个表达式的值。包含分号后,返回值始终是 Rust 的单元值,即空元组()(除非块包含不返回的表达式,在这种情况下,返回类型是“never”类型!,它没有任何值) .
在这种特殊情况下,没有语义差异。赋值表达式也返回单位值,即(var = var + 1) == ()。然而,这或多或少是巧合。您实际上不想在该语句中返回任何值,因此包含分号会使您的意图更加清晰。
| 归档时间: |
|
| 查看次数: |
96 次 |
| 最近记录: |