为什么我们不在if / else的末尾添加分号(;)?

时间:2014-12-27 15:19:14

标签: if-statement syntax rust expression

在Rust中,我注意到除了两种语句外,一切都是表达式。添加;的每个表达式都将成为一个声明。 Rust的语法希望语句遵循其他语句。

那么为什么我们不在; / if“表达式的末尾添加else”?这也是一个表达,所以我们为什么不这样做:

if true {
    println!("true");
} else {
    println!("false");
};

2 个答案:

答案 0 :(得分:0)

discussion中最常见的答案是,它看起来更像是来自其他语言的用户所期望的,并且允许该语法没有任何害处(因为结果类型为(),感谢分支中的分号。)

答案 1 :(得分:0)

我猜是因为它是Java或Nginx-Conf等其他语言中的块表达式,所以只能在语句之后而不是在块之后设置分号。