число, я могу как то проверить равенство без указания этого числа?
Code:
fn main() {
let foo = Foo::Boo(1);
let vec = vec![Foo::NotBoo, Foo::NotBoo, Foo::Boo(3), Foo::NotBoo, Foo::Boo(5)];
for foo in vec.iter() {
if *foo == Foo::Boo {
todo!();
}
}
}
#[derive(PartialEq)]
enum Foo {
NotBoo,
Boo(i32),
}
Error:
error[E0308]: mismatched types
--> src/main.rs:9:20
|
9 | if *foo == Foo::Boo {
| ---- ^^^^^^^^ expected `Foo`, found enum constructor
| |
| expected because this is `Foo`
...
18 | Boo(i32),
| --- `Boo` defines an enum variant constructor here, which should be called
|
= note: expected enum `Foo`
found enum constructor `fn(i32) -> Foo {Foo::Boo}`
help: use parentheses to construct this tuple variant
|
9 | if *foo == Foo::Boo(/* i32 */) {
|
if matches!(foo, Foo::Boo(_)) { ... }
я понимаю что это другой тип по факту, но можно ли это обойти?
работает, спасибо
Обсуждают сегодня