为什么在Rust的最后,结构声明不需要分号?

时间:2020-04-19 19:11:24

标签: rust

在Rust中,表达式结尾不需要分号。陈述确实如此。

尽管如此,用于在Rust中声明struct的语法如下:

struct Rectangle {
    width: u32,
    height: u32,
}

如您所见,尽管struct声明是一个语句,但最后没有分号。可以通过运行以下代码来证明这一点:

println!("{:#?}",
    struct foo {
        bar: u32,
    }
);

这将导致以下错误:

error: expected expression, found keyword `struct`
   --> src/main.rs:104:9
    |
104 |         struct foo {
    |         ^^^^^^ expected expression

从而证明结构声明确实不是表达式。

以下是在声明中使用代码块的类似语法:

let foo = {
    if true {
         1
    } else {
         2
    }
};

如您所见,在这种情况下,需要使用分号。

问题是: 为什么在Rust的末尾结构声明不要求分号?

感谢您的帮助!

0 个答案:

没有答案