Объявление структуры в Rust
Тип с полями объявляют до функции main.
Сначала идет слово для структуры, затем
имя типа и список полей в фигурных скобках.
У каждого поля свое имя, двоеточие и тип,
поля разделяют запятой.
Текстовое имя в поле часто берут как ссылку
на строковый литерал с фиксированным временем
жизни. Число возраста удобно хранить как
целое i32. Такой набор полей описывает
одного пользователя:
struct User {
name: &'static str,
age: i32,
}
Создадим значение этого типа:
let user = User { name: "ann", age: 20 };
Имя типа User потом используют в
литерале и в объявлении переменной. Объявление
типа само по себе значение не создает: запись
появляется только после литерала в теле
программы.
В одном файле можно описать несколько типов подряд, каждый со своим именем и набором полей:
struct User {
name: &'static str,
age: i32,
}
struct Score {
points: i32,
bonus: i32,
}
Создадим значение каждого типа:
let user = User { name: "ann", age: 20 };
let score = Score { points: 10, bonus: 2 };
Дана структура:
struct Book {
title: &'static str,
pages: i32,
}
let book = Book { title: "rust", pages: 300 };
Скажите, сколько полей описывает тип
Book.
Дана структура:
struct Book {
title: &'static str,
pages: i32,
}
let book = Book { title: "rust", pages: 300 };
Добавьте к описанию поле year типа
i32 и соберите значение с годом
2024, не меняя остальные поля
в литерале.
Дана структура:
struct Pair {
left: i32,
right: i32,
}
let pair = Pair { left: 1, right: 2 };
Скажите, какой тип у поля right.