Варианты с данными в Rust
Вариант может нести число или пару чисел. После имени варианта в круглых скобках перечисляют типы и значения так же, как поля в кортеже. Снаружи тип по-прежнему один, но разные имена могут хранить разное число данных.
Запись значения повторяет объявление: имя варианта и данные в тех же скобках:
fn main() {
enum Shape {
Circle(i32),
Rect(i32, i32),
}
let shape = Shape::Circle(10);
}
Вторая форма хранит ширину и высоту двумя числами подряд. Переменная может ссылаться на любой из вариантов одного типа:
fn main() {
enum Shape {
Circle(i32),
Rect(i32, i32),
}
let shape = Shape::Rect(4, 7);
}
Дано перечисление:
enum Packet {
Ping(i32),
Pong,
}
let p = Packet::Ping(3);
Запишите в p вариант Pong
без скобок в main.rs.
Дано перечисление:
enum Size {
One(i32),
Pair(i32, i32),
}
let s = Size::One(5);
Перезапишите s вариантом с двумя
числами 2 и 8.
Объявите перечисление Msg с
вариантом Code и одним числом
и вариантом Empty без данных.
Запишите в переменную вариант Code
с числом 1 в main.rs.