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

Практика на объекты трейта в Rust

Даны типы:

trait Greet { fn greet(&self) -> String; } struct User { name: &'static str, } struct Bot { id: i32, }

Выполните набор для обеих структур, запишите функцию с параметром-объектом по Greet и выведите приветствия для одного пользователя и одного бота.

Даны типы:

trait Greet { fn greet(&self) -> String; } struct Cat { name: &'static str, }

Реализуйте Greet, положите Cat в коробку с объектом трейта и выведите строку приветствия.

Даны типы:

trait Score { fn points(&self) -> i32; } struct Run { value: i32, } struct Jump { height: i32, }

Выполните Score для обоих типов, соберите вектор из двух коробок и выведите очки каждого элемента в цикле.

Даны типы:

trait Label { fn text(&self) -> &'static str; } struct Tag { name: &'static str, } struct Mark { code: &'static str, }

Реализуйте Label, соберите вектор коробок с двумя разными структурами и передайте срез вектора в функцию, которая печатает каждую подпись.

Даны типы:

trait Greet { fn greet(&self) -> String; } struct User { name: &'static str, } struct Bot { id: i32, }

Запишите функцию, которая принимает параметр-объект и возвращает строку greet, вызовите ее для значений обоих типов и выведите обе строки.

Даны типы:

trait Greet { fn greet(&self) -> String; } struct Dog { nick: &'static str, }

Скажите, какие методы останутся доступны у коробки с объектом Greet после того, как Dog окажется внутри, и что из сведений о Dog снаружи не видно.

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