匹配结构中 () 和 {} 的区别

Wiz*_*zix 0 rust

当我不想在 Rust 匹配结构中做任何事情时,我可以执行以下两种方法之一:

match some_number {
    1 => println!("One"),
    2 => (), // unit value
    _ => {}  // ?
}
Run Code Online (Sandbox Code Playgroud)

有什么区别吗?{}不是单位值,那么它有什么作用呢?

Fre*_*ios 8

{}是一个返回单位值的空范围。它们在语义上是相同的,就像这两个函数是相同的:

fn foo() {}

fn bar() {
    ()
}
Run Code Online (Sandbox Code Playgroud)