let Some(b) = bar {
if let Some(something) = xyz.maybe_something(b) {
something
} else {
xyz.always_something()
}
} else {
xyz.always_something()
};
bar.and_then(|b|xyz.maybe_something(b)).unwrap_or_else(||xyz.always_something())
О, спасибо. Не знал про and_then
let someting = bar .map(|v| maybe_something(v)) .flatten() .unwrap_or_else(|| always_something());
Про это тоже не знал, спасибо
Option::flatten() поможет от Option<Option<T>>
Обсуждают сегодня