Динамічна та статична диспетчеризації.
Методи виконуються двома способами:
- статична диспетчеризація - коли відомий тип екземпляра, і ми знаємо яку функцію викликати.
- динамічна диспетчеризація - коли тип екземпляра невідомий, і ми повинні з'ясувати якийсь спосіб виклику правильної функції.
Типи трейтів &dyn MyTrait
дають нам можливість працювати з екземплярами об'єктів опосередковано, використовуючи динамічну диспетчеризацію.
Коли використовується динамічна диспетчеризація, Rust рекомендуватиме вам поставити dyn
перед вашим типом ознаки, щоб інші знали про це.
Деталі роботи за памяттю:
- Динамічна диспетчеризація працює дещо повільніше через покажчик, котрий займається пошуком функції, і її виконанням.