Rustのやり方は賢面白くて賢いなあと思った

①まずRustでは言語仕様からNullポインタ(Null参照)を排除
➁従来のNullポインタ相当を使いたいときはenum Option型のNone値を使用
③None値はポインタ(参照)とは全く別の型だからそのまま使えば型エラーにできる
④しかしOption型はenumすなわちタグ付きだから毎回メモリが無駄に使用される??と思ったら
⑤言語仕様上Nullポインタを完全に排除したのでNone値を示すために生成コードではNullポインタを使える

概念上の安全性と生成コードの効率性を分離して両立させているんだな