Hacker News new | ask | show | jobs
by vasilakisfil 1317 days ago
you are right, not so useful for Result type, but still, it comes handy for Option types (since None doesn't hold anything).
2 comments

Agree, I don't know if it's that useful for `Result<T>`, but for `Option<T>`, there has been a couple of times I've written

  if foo.is_none() {
    return;
  }
  let foo = foo.unwrap()
Now I can do simply

  let Some(foo_unwrapped) = foo else {
    return;
  }
which is prettier than the `if let (...)` to just unwrap it IMO.
Without let-else, you could write that as:

    let foo_unwrapped = match foo {
      Some(foo_unwrapped) => foo_unwrapped,
      None => return,
    };
Not as pretty, but you don't have to unwrap.
For Result it's probably more common to use ?, alternatively you could use

    let x_result = something;
    let Ok(x) = x_result else {
        ...
    }
But I expect that it will be used mostly with Option, as in "else continue" or "else break".