Rustには例外処理もnullもありませんが、これはRustの思想そのもの。例外処理やnullが無い代わりに、その機能をサポートする手段として、enumとしてのResultやOptionがあるということになります。
https://doc.rust-lang.org/std/option/
を参照すると、”Type Option represents an optional value: every Option is either Some and contains a value, or None, and does not.“であり、Rustでは標準的に使われる機能になります。
とありますが、Optionは実は、以下のようなenumになっていて要素としてはNoneとSome(T)が存在してます。
pub enum Option {
    None,
    Some(T),
} 通例では、Optionはパターンマッチングと一緒に使われて、rust-lang.orgの以下のサンプルコードを見ると、match resultでマッチング処理を行なっています。
fn main(){
   fn divide(numerator: f64, denominator: f64) -> Option {
        if denominator == 0.0 {
            None
        } else {
            Some(numerator / denominator)
        }
    }
    // The return value of the function is an option
    let result = divide(10.5, 1.5);
    // Pattern match to retrieve the value
    match result {
        // The division was valid
        Some(x) => println!("Result: {x}"),
        // The division was invalid
        None => println!("Cannot divide by 0"),
    }
} Optionに限らずResultも類似のやり方で処理されます。
いずれにしてもRust固有の記法というように見えます。
admin



