Структура в параметре функции в Rust
Структуру можно передать целиком по значению или читать поля внутри блока. Поля открывают через точку после имени параметра.
Опишем человека и напечатаем имя:
struct User {
name: String,
age: i32,
}
fn show(u: User) {
println!("{}", u.name);
}
fn main() {
let ann = User {
name: String::from("ann"),
age: 20,
};
show(ann);
}
На экране "ann". При передаче по значению структура
переносится в параметр.
Можно отдать одно поле как результат:
struct Point {
x: i32,
y: i32,
}
fn func(p: Point) -> i32 {
p.x
}
fn main() {
let dot = Point { x: 4, y: 7 };
println!("{}", func(dot));
}
Дана структура:
struct Item {
price: i32,
qty: i32,
}
let pack = Item { price: 5, qty: 2 };
Напишите блок, который принимает Item и отдает произведение
полей. Выведите результат для pack.
Дан следующий код:
struct Tag {
label: String,
}
fn main() {
let t = Tag { label: String::from("go") };
show(&t);
}
Допишите show со ссылкой на Tag и печатью поля
label.
Скажите, как в теле функции обращаются к полю переданной структуры.