Обобщенная структура в Rust
Имя типа ставят и у структуры, чтобы поле хранило разные значения. В описании структуры после ее имени перечисляют параметры типа, а поля используют эти имена вместо одного фиксированного вида.
Оформим обертку вокруг одного значения:
struct Wrapper<T> {
value: T,
}
fn main() {
let num = Wrapper { value: 10 };
let text = Wrapper { value: String::from("go") };
println!("{} {}", num.value, text.value);
}
Тот же шаблон работает, когда внутри лежит кортеж из двух чисел:
struct Wrapper<T> {
value: T,
}
fn main() {
let pair = Wrapper { value: (1, 2) };
println!("{} {}", pair.value.0, pair.value.1);
}
Дано число:
let points: i32 = 40;
Объявите структуру с одним полем-параметром
и положите points внутрь. Выведите
поле.
Дана переменная:
let city = String::from("oslo");
Соберите обертку со строкой из city
и выведите текст из поля.
Скажите, чем обобщенная структура отличается от двух отдельных структур под число и строку.