Практика на объекты трейта в 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 снаружи не
видно.