【发布时间】:2014-12-27 15:19:14
【问题描述】:
在 Rust 中,我注意到除了 2 种语句之外,一切都是表达式。每个添加; 的表达式都将成为一个语句。 Rust 的语法希望语句跟在其他语句之后。
那么我们为什么不在if/else“表达式”的末尾添加;?这也是一个表达式,所以我们为什么不这样做:
if true {
println!("true");
} else {
println!("false");
};
【问题讨论】:
-
我不知道你是否会得到关于为什么 Rust 允许这样做的任何清晰、简洁的答案。它可能只是“因为它看起来更好”或“其他类似语言就是这样做的”。对于它的价值,你可以把
;放在那里,当我在一行中使用if/else作为三元语句时,我就有了。 -
如果
if、while或match表达式是语句的“根”表达式,则可以省略分号。 -
在reddit上广泛讨论reddit.com/r/rust/comments/2qjvzr/…
-
@dbaupp reddit 帖子是我的。在我在这里发布我的问题之后,似乎很少有人注意到它。事实上,如果你对我的问题进行越来越多的实验,你会发现它比它应该的“外观”非常混乱。
-
我不知道为什么这个问题收到了反对票和 4 票。这是一个很好的问题,reddit 上的回答也很好很有趣。
标签: if-statement syntax rust expression