如果我们;在全局范围内的枚举声明的末尾显式添加,编译器会抱怨.
#[derive(Debug)]
enum Organs{
Head,
Tail,
};
fn main(){
println!("{:?}", Organs::Head);
}
Run Code Online (Sandbox Code Playgroud)
生成的错误消息是
enums.rs:5:2: 5:3 error: expected item, found `;`
enums.rs:5 };
Run Code Online (Sandbox Code Playgroud)
但是,当在函数内声明时,语句终止符不是必需的,程序将在有或没有编译的情况下编译;.
fn main(){
#[derive(Debug)]
enum Organs{
Head,
Tail,
};
println!("{:?}", Organs::Head);
}
Run Code Online (Sandbox Code Playgroud)
我浪费了很多时间(刚才)确定编译器在抱怨什么.我没有想到枚举声明(在全局范围内)不能终止;.为什么会出现这种不一致(或者我误解了什么)?