[Rust] Option

Answer1215 / 2023-05-18 / 原文

fn multiply(num: Option<usize>) -> usize {
    return num.unwrap_or(0) * 5;
}

fn multiply1(num: Option<usize>) -> Option<usize> {
    match num {
        Some(num) => Some(num * 5),
        None => None,
    }
}

fn multiply2(num: Option<usize>) -> Option<usize> {
    return num.map(|x| x * 5);
}

fn multiply3(num: Option<usize>) -> Option<usize> {
    return Some(num? * 5);
}