Rust enumlar


ULASHISH

Enumlar

Enum ("enumeration" - sanab o‘tish so‘zining qisqartmasi) - bu bir nechta turli qiymatlardan biri bo‘la oladigan tipni aniqlash usuli.

Enumdagi har bir qiymat variant deb ataladi.

Enumlar faqat cheklangan variantlar to‘plamidan biri bo‘la oladigan qiymatni ifodalash kerak bo‘lganda foydali - masalan, hafta kunlari, yo‘nalishlar yoki muvaffaqiyat va xato kabi natijalar.


Enum yaratish

Enum yaratish uchun enum kalit so‘zidan foydalaning va vergul bilan ajratilgan nomlangan qiymatlar (variantlar) to‘plamini qo‘shing:

Misol

enum Direction {   Up,   Down,   Left,   Right, }

Enumdan foydalanish uchun o‘zgaruvchi yarating va unga enumning variantlaridan birini tayinlang (variantga murojaat qilish uchun :: belgisidan foydalaning):

Misol

enum Direction {   Up,   Down,   Left,   Right, } fn main() {   let my_direction = Direction::Up;   println!("We are going up!"); }
O‘zingiz sinab ko‘ring »

Enum qiymatlari bilan match

Enumlar match operatori bilan juda yaxshi ishlaydi. Qaysi variant ishlatilganiga qarab turli kodni bajarishingiz mumkin:

Misol

enum Direction {   Up,   Down,   Left,   Right, } fn main() {   let my_direction = Direction::Left;   match my_direction {     Direction::Up => println!("Going up"),     Direction::Down => println!("Going down"),     Direction::Left => println!("Going left"),     Direction::Right => println!("Going right"),   } }
O‘zingiz sinab ko‘ring »


Ma’lumot saqlovchi enumlar

Enum variantlari ma’lumot ham saqlashi mumkin. Bu har bir variant qo‘shimcha ma’lumot saqlashi kerak bo‘lganda foydali:

Misol

enum LoginStatus {   Success(String),   Error(String), } fn main() {   let result1 = LoginStatus::Success(String::from("Welcome, John!"));   let result2 = LoginStatus::Error(String::from("Incorrect password"));   match result1 {     LoginStatus::Success(message) => println!("Success: {}", message),     LoginStatus::Error(message) => println!("Error: {}", message),   } }
O‘zingiz sinab ko‘ring »

Nega enumlardan foydalanish kerak?

  • Bog‘liq qiymatlarni bitta tipga guruhlash uchun
  • Kodingizni o‘qilishi oson va xavfsizroq qilish uchun
  • match yordamida turli holatlarni boshqarish uchun

W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!