Практика на идентификатор типа в Rust
Даны фрагменты в одной программе:
use std::any::TypeId;
let a = TypeId::of::<u8>();
let b = TypeId::of::<u8>();
let c = TypeId::of::<char>();
Запишите, какие из сравнений a == b
и a == c дадут истину.
Дано число:
let num = 100;
Напишите функцию, которая принимает
ссылку на общий тип и печатает это
число, если внутри i32. Проверьте
на литерале и на строке.
Дана строка:
let txt = "ok";
Функция, которая печатает только целое
внутри общей ссылки, настроена на
i32. Скажите, будет ли вывод для
такого текста.
Даны типы:
struct Point {
x: i32,
y: i32,
}
struct Label {
text: String,
}
Сравните метки вида для Point
и Label, выведите результат
равенства.
Дано число:
let num = 3;
Сохраните ссылку на это значение как
на общий тип, затем верните ее к
i32 и выведите число. Повторите
для строки и скажите, где вывод есть.
Дана строка:
let txt = "data";
Скажите, зачем сравнивать метки вида, если поля неизвестной структуры все равно не читают через общий тип.