No exemplo simplificado a seguir, o compilador reclama que uma ramificação da match
instrução retorna bool
, enquanto a outra retorna ()
.
use std::collections::{HashMap, HashSet};
fn main() {
let available = HashMap::from_iter([(2, "b"), (3, "c"), (4, "d")]);
let mut set = HashSet::new();
for i in [1, 2, 3, 4, 5] {
match available.get(&i) {
Some(s) => set.insert(*s),
None => ()
}
}
}
No entanto, isso resulta em um erro:
error[E0308]: `match` arms have incompatible types
--> src/main.rs:10:21
|
8 | / match available.get(&i) {
9 | | Some(s) => set.insert(*s),
| | -------------- this is found to be of type `bool`
10 | | None => ()
| | ^^ expected `bool`, found `()`
11 | | }
| |_________- `match` arms have incompatible types
Como posso informar ao compilador que a instrução match deve retornar ()
e que o bool
retornado de insert
deve ser ignorado?