Open2
Rust勉強手記ーOption Enum
Option
はEnum
型の一つで、Rustlangの中でnull
という概念を表している。Rustにはnull
というデータタイプがなく、Option Enumの形で扱うことになる。直接のnull扱いを避けて、コードの安全性を高められる。
enum Option<T> {
None,
Some(T),
}
この定義を見た瞬間、なんか見覚えあるな。。と思ったら、FPのMaybe functorとかなり機能的に似ているのでは?
class Functor {
constructor(val) {
this.val = val;
}
map(f) {
return new Functor(f(this.val));
}
// of aka unit functor, replace new keyword to create a new instance of Functor
static of(val) {
return new Functor(val);
};
}
class Maybe extends Functor {
map(f) {
return this.val ? Maybe.of(f(this.val)) : Maybe.of(null);
}
}
という線で探してみると、こちらの記事を見つけた。
matchとの併用によって、必ずNullのパターンが処理されるので、非常にrobustなコードに書かせられる。
新しい知識獲得と、既存の知識とのリンク付けの二重の嬉しさの一時でした。