Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗rsTsTmClL7 159 of 173 menu
◀ ▶

Задачи на ООП в Rust. Часть 7

Объясните trait object &dyn Drawable vs impl Drawable.

Дан trait:

trait Drawable { fn draw(&self); }

Создайте Vec<Box<dyn Drawable>> с Circle и Square.

Вызовите draw() для каждого элемента вектора trait objects.

Дан trait:

trait Animal { fn speak(&self) -> &str; }

Сделайте fn animal_concert(animals: &[&dyn Animal]).

Объясните, когда нужен Box<dyn Trait>.

Сравните статический dispatch (impl Trait) и динамический (dyn Trait).

Сделайте функцию, принимающую &dyn Describable и возвращающую строку.

Сделайте enum с вариантами, содержащими Box<dyn Drawable> (concept).

Trait object и lifetimes — кратко объясните ограничение.

Опишите trait ClickHandler и храните разные кнопки как Vec<Box<dyn ClickHandler>>. Вызовите on_click у всех.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить