Замена поля структуры в Rust
Поле меняют, если переменная объявлена
изменяемой. Перед именем ставят слово
mut, затем через точку выбирают поле
и присваивают новое значение того же типа.
Остальные поля при одной замене не трогают. Можно по очереди обновить и имя, и возраст, если тип поля это позволяет.
Объявим изменяемого пользователя и увеличим возраст на единицу:
struct User {
name: &'static str,
age: i32,
}
Увеличим возраст у изменяемого значения:
let mut user = User { name: "ann", age: 20 };
user.age = 21;
println!("{}", user.age);
На экране 21. Без mut присваивание
полю не собирается: компилятор требует
изменяемую переменную.
Текстовое поле тоже можно заменить другим литералом того же типа ссылки:
struct User {
name: &'static str,
age: i32,
}
Заменим имя и возраст:
let mut user = User { name: "ann", age: 20 };
user.name = "amy";
user.age = 22;
println!("{}", user.name);
Дана структура:
struct User {
name: &'static str,
age: i32,
}
let mut user = User { name: "ann", age: 20 };
Замените поле age на 30 и выведите
его на экран.
Дана структура:
struct User {
name: &'static str,
age: i32,
}
let user = User { name: "ann", age: 20 };
Скажите, соберется ли присваивание
user.age = 21 без слова mut.
Дана структура:
struct Counter {
value: i32,
}
let mut counter = Counter { value: 0 };
Три раза увеличьте value на 1
и выведите итог.