Я не ожидаю, что следующий код будет работать, но в рамках изучения грамматики я попытался на игровой площадке:
fn main() {
struct EOF {};
let lines = vec![Ok("line 1"), Ok("line 2"), Err(EOF {})];
for Ok(line) in lines {
println!("{}", line);
}
}
Сообщение об ошибке
error[E0005]: refutable pattern in 'for' loop binding: 'Err(_)' not covered
--> src/main.rs:4:9
|
4 | for Ok(line) in lines {
| ^^^^^^^^ pattern 'Err(_)' not covered
Согласно вышеприведенному сообщению, мне кажется, что мне нужно только добавить руку для Err
дела Err
. Но какова правильная грамматика?