動的ディスパッチと静的ディスパッチ
メソッドは2つの方法で実行されます。
- 静的ディスパッチ - インスタンスの型がわかっている場合、どの関数を呼び出せばよいかを直接知ることができる。
- 動的ディスパッチ - インスタンスタイプが不明な場合、正しい関数を呼び出す方法を見つけなければならない。
トレイト型である &dyn MyTrait
は、動的ディスパッチを使って間接的にオブジェクトのインスタンスを操作する機能を提供します。
動的ディスパッチを使用する場合、Rustは、人々が認識できるように、トレイト型の前に dyn
を置くことを推奨します。
メモリの詳細:
- 動的ディスパッチは、実際の関数呼び出しを見つけるためにポインタを追跡するため、わずかに遅くなります。