Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗rsPmSrLt 237 of 373 menu
◀ ▶

Литерал структуры в Rust

Значение структуры собирают литералом в фигурных скобках. После имени типа перечисляют поля: у каждого имя, двоеточие и значение. Имена полей в литерале обязательны, пропустить поле нельзя.

Порядок полей в литерале может быть любым. Компилятор сопоставляет значения по именам, а не по месту в списке. Так проще читать запись, когда полей несколько.

Классический порядок совпадает с объявлением типа:

struct User { name: &'static str, age: i32, }

Соберем литерал в том же порядке:

let user = User { name: "ann", age: 20 };

Тот же набор полей можно записать в другом порядке - тип и смысл не меняются:

struct User { name: &'static str, age: i32, }

Соберем литерал в другом порядке полей:

let user = User { age: 21, name: "bob" };

Дана структура:

struct User { name: &'static str, age: i32, } let user = User { name: "ann", age: 20 };

Перепишите литерал так, чтобы сначала шло поле age, затем name.

Дана структура:

struct Tag { code: i32, label: &'static str, } let tag = Tag { code: 5, label: "ok" };

Соберите вторую переменную copy с теми же значениями, но поля перечислите в обратном порядке.

Дана структура:

struct User { name: &'static str, age: i32, }

Скажите, можно ли записать литерал только с полем name, не указывая age.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить