10
Zgodnie z docs for Option
, Option
jest wylicznikiem z wariantami Some<T>
i None
.Dlaczego warianty Niektóre i Żadne opcji nie muszą być kwalifikowane?
Dlaczego można odwoływać się do Some
i None
bez ich kwalifikowania?
Na przykład, to działa prawidłowo:
let x = Option::Some(5);
match x {
Some(a) => println!("Got {}", a),
None => println!("Got None"),
}
Ale to nie skompilować:
enum Foo<T> {
Bar(T),
Baz,
}
let x = Foo::Bar(5);
match x {
Bar(a) => println!("Got {}", a),
Baz => println!("Got Baz"),
}
Błąd z kompilatora jest unresolved enum variant, struct or const `Bar`
Doskonale, dziękuję. – krixon
Bardzo przydatne, aby wiedzieć, dziękuję! –