Rust enumlar
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
matchyordamida turli holatlarni boshqarish uchun
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
