Rustでは値が存在するか不在かという概念をnullではなくenumで実現する。
pub enum Option<T> { None, Some(T),}fn square(x: Option<i32>) -> Option<i32> { match x { None => None, Some(i) => Some(i * i), }}let b = Some(5);let a = square(b);let none = square(None);