例如:
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
有同样的问题.