4 ms·
You were pretty close with your hypothetical syntax! You can write: let Some(y) = x else { do_stuff(); return }; I think it was a fairly recent addition to
by ljsb 3y ago
You were pretty close with your hypothetical syntax! You can write:
let Some(y) = x else { do_stuff(); return };
I think it was a fairly recent addition to Rust.
- rtpg 3y agoThank dog for that. I feel like I even read the release notes for that but it was while I hadn’t been touching a specific codebase with loads of early returns. Thanks for pointing this out!
- chrismorgan 3y agolet-else was stabilised in 1.65.0, released 2022-11-03.
- metadat 3y agoWhat determines whether `let Some(y) = x` evaluates to boolean true?
- bombela 3y agoThe fact that the pattern matches. Here the type being matched is: enum Option<T> { None, Some(T) } let x = Some(42); let Some(y) = x else { panic!("None") };
- asherah 3y agoif x is `Some`, then `y` is set to the inner value and the following block occurs. you can also use this with other enums - i don't remember off the top of my head if it works for all enums, but you can at least also use it with `Result`
- jeffdn 3y agoIt absolutely works for all patterns!