Rustのオプションタイプのオーバーヘッドは何ですか?
Rustでは、参照がnullになることはないため、リンクリストなど、実際にnullが必要な場合は、次のOptionタイプを使用します。 struct Element { value: i32, next: Option<Box<Element>>, } 単純なポインタと比較して、メモリ割り当てと逆参照の手順に関して、これにはどのくらいのオーバーヘッドが含まれますか?コンパイラ/ランタイムに、同じ構造を使用して非コアライブラリに自分でOption実装Optionしたりenum、ポインタをベクトルでラップしたりする場合よりも、コストをかけずに、またはコストを抑えた「魔法」がありますか?