РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
522 of 1245 menu

Объявление перечисления enum

Ключевое слово enum объявляет перечисление - тип данных, который может принимать одно из нескольких заранее определённых значений, называемых вариантами. Каждый вариант может быть простым именем, кортежным вариантом с данными или структурным вариантом с именованными полями. Перечисления часто используются для моделирования состояний, результатов операций и выбора из нескольких альтернатив.

Синтаксис

enum Name { Variant1, Variant2, Variant3, }

Пример

Давайте объявим простое перечисление с тремя вариантами и выведем один из них:

enum Direction { North, South, East, } fn main() { let dir = Direction::North; match dir { Direction::North => println!("North"), Direction::South => println!("South"), Direction::East => println!("East"), } }

Результат выполнения кода:

"North"

Пример

Давайте объявим перечисление с кортежными вариантами, которые хранят данные:

enum Value { Int(i32), Text(String), } fn main() { let val = Value::Int(42); match val { Value::Int(n) => println!("{}", n), Value::Text(s) => println!("{}", s), } }

Результат выполнения кода:

42

Пример

Давайте объявим перечисление со структурными вариантами, которые содержат именованные поля:

enum Shape { Circle { radius: f64 }, Rectangle { width: f64, height: f64 }, } fn main() { let shape = Shape::Circle { radius: 5.0 }; match shape { Shape::Circle { radius } => println!("{}", radius), Shape::Rectangle { width, height } => println!("{}", width * height), } }

Результат выполнения кода:

5

Смотрите также

  • перечисление enum,
    которое объявляет тип с несколькими вариантами
  • вариант unit-variant,
    который не хранит данных
  • вариант tuple-variant,
    который хранит данные без именованных полей
  • вариант struct-variant,
    который хранит данные с именованными полями
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить