Разбор данных варианта в Rust
Когда вариант хранит данные, образец в ветке разбора может сразу разложить их на имена. В скобках после имени варианта перечисляют локальные переменные, и каждое число из значения попадает в свое имя.
В ветке данные варианта сразу получают имена, и дальше можно выводить их как обычные переменные:
fn main() {
enum Shape {
Circle(i32),
Rect(i32, i32),
}
let shape = Shape::Circle(10);
match shape {
Shape::Circle(r) => println!("{}", r),
Shape::Rect(w, h) => {
println!("{}", w);
println!("{}", h);
}
}
}
Для прямоугольника два имени получают ширину и высоту по порядку в объявлении варианта. Круг дает одно имя для радиуса:
fn main() {
enum Shape {
Circle(i32),
Rect(i32, i32),
}
let shape = Shape::Rect(3, 5);
match shape {
Shape::Circle(r) => println!("{}", r),
Shape::Rect(w, h) => println!("{}", w + h),
}
}
Дано перечисление:
enum Shape {
Circle(i32),
Rect(i32, i32),
}
let shape = Shape::Circle(7);
Разберите shape и выведите
радиус в main.rs.
Дано перечисление:
enum Shape {
Circle(i32),
Rect(i32, i32),
}
let shape = Shape::Rect(2, 9);
Разберите shape и выведите
сумму ширины и высоты.
Дано перечисление:
enum Ticket {
Adult(i32),
Child(i32),
}
let t = Ticket::Child(6);
Разберите t и выведите число
из варианта в main.rs.