一般社団法人 全国個人事業主支援協会

COLUMN コラム

Rustでは値が存在するか不在かという概念をnullではなくenumで実現する。

pub enum Option<T> {
    None,
    Some(T),
}
上記のNoneはあくまでenumの列挙子であり、nullではない。
Optionはそのままの状態で格納されている値を使用できない。
その為、Optionの列挙を使用することで、値が保持されていない可能性というのを明確化し、値を後のコード上で有効にするように促せる。
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);
The following two tabs change content below.

WATANABE REN

千葉県在住のエンジニアです。最近はPythonやってます。

この記事をシェアする

  • Twitterでシェア
  • Facebookでシェア
  • LINEでシェア