Есть ли разница между "если позволено" и "если"? - PullRequest
2 голосов
/ 19 апреля 2020

Код:

let x = Some(3);
if x == Some(3) {
    println!("if case");
}
if let Some(3) = x {
    println!("if let case");
}

Результат:

if case
if let case

Почему программисты ржавчины используют "если позволено"?

1 Ответ

6 голосов
/ 19 апреля 2020

С if let вы можете использовать сопоставление с образцом для разложения x на части:

let x = Some(3);
if let Some(v) = x {
    println!("{}", v); // prints 3
}

То же самое с if неэлегично:

let x = Some(3);
if x.is_some() {
    println!("{}", x.unwrap()); // not recommended
}

( детская площадка )

...