Fundamentals37 / 42
Up next

The ? operator

fn parse_add(a: &str, b: &str) -> Result<i32, std::num::ParseIntError> {
    // on Err, return it now
    let x: i32 = a.parse()?;
    let y: i32 = b.parse()?;
    Ok(x + y)
}

fn main() {
    println!("{:?}", parse_add("2", "3"));
    println!("{:?}", parse_add("2", "oops"));
}
What you're solving

return the error early, keep the happy path clean