Практика на трейты в Rust
Дана структура:
struct Dog {
name: &'static str,
}
let dog = Dog { name: "rex" };
Объявите набор с методом, который возвращает
String "dog rex", выполните
его для Dog и выведите результат.
Дана структура:
struct Task {
title: &'static str,
done: bool,
}
let task = Task { title: "read", done: false };
Сделайте два набора: один отдает title,
другой done. Выполните оба для
Task и выведите оба поля отдельными
вызовами.
Дана структура:
struct Msg {
text: &'static str,
}
let msg = Msg { text: "ok" };
Запишите набор с методом по умолчанию,
который возвращает "msg", и метод
body без тела, отдающий text.
Выполните для Msg, допишите только
body, выведите обе строки.
Дана структура:
struct Node {
id: i32,
}
let node = Node { id: 8 };
Объявите набор с методом id, выполните
для Node и передайте ссылку в
функцию с ограничением по этому набору,
которая печатает число.
Дана структура:
struct Card {
rank: i32,
suit: &'static str,
}
let card = Card { rank: 11, suit: "spade" };
Сделайте наборы для rank и suit,
выполните оба для Card и вызовите
функцию с двумя ограничениями, которая
выводит оба значения в одной строке.
Дана структура:
struct Weight(i32);
let kg = 15;
Выполните стандартный перевод из i32
в Weight, получите значение через
into у kg и выведите поле.