例如:
enum Foobar {
Foo(i32),
Bar(i32),
}
fn main() {
let a: Result<i32, i32> = Result::Ok(1);
let b: Result<i32, i32> = Ok(1);
let c: Foobar = Foobar::Foo(1);
let d: Foobar = Foo(1); // Error!
}
我必须写Foobar::Foo()
而不是只写Foo()
,但我可以只写Ok()
而不需要Result::
。为什么会这样?我对Some
和None
也有同样的问题。