2021-09-20から1日間の記事一覧

所有権と借用

所有権 Ownership 所有権とは 所有権と値のライフスコープ 所有権の移動 コピーセマンティクス Copyトレイト実装型 基本型 (bool, i32, ...) 参照型 ムーブセマンティクス 所有権とは 値を保持できる変数は、必ず1つであるという制約のこと。 #[derive(Debu…

ポリモーフィズム with トレイトオブジェクト

ポリモーフィズム (Polymophism) ポリモーフィズム in Rust deepLによる翻訳 ポリモーフィズム 多くの人にとって、ポリモーフィズムは継承と同義語です。しかし、実際にはもっと一般的な概念であり、複数の型のデータを扱うことができるコードを指します。継…

トレイトオブジェクト

Trait objects 動的サイズ決定型 (DSTs) トレイトオブジェクトは、以下のポインタを持つワイドポインタ(動的サイズ決定型) 値へのポインタ 仮想メソッドテーブル トレイトオブジェクトの形 Box<dyn SomeTrait> &dyn SomeTrait トレイトオブジェクトの目的 動的ディスパッチ</dyn>…

ジェネリクス関数 - impl trait引数とトレイト境界の違い

元ネタ rust - What are the differences between an impl trait argument and generic function parameter? - Stack Overflow 回答 impl trait引数は、トレイト境界に脱糖(desugar)される。(ゆえにトレイト境界の糖衣構文である) したがって以下は同じ。 t…