Struct, Enum और Trait

Rust Option: Some and None

Rust has no null. A value that may be missing is an Option, and the compiler makes you handle None.

  • मध्यम
  • 3 मिनट में पढ़ें
  • 1 चलाने योग्य उदाहरण
आप क्या सीखेंगे
  • Some(value) and None
  • match and unwrap_or
  • map on an Option
find_user(id)
Some
  • id 1 → Some("Ada")
  • use the name
None
  • id 3 → None
  • handle the missing case

A value that may be missing

Rust has no null. A value that may be missing has the type Option<T>, which is either Some(value) or None. The compiler makes you handle the None case before you can use the value.

find_user returns Some for a known id and None otherwise, and match handles both. unwrap_or supplies a default when the value is missing. map changes the value inside Some and leaves None alone.

मुख्य बातें

  1. Option<T> is Some(value) or None.
  2. unwrap_or gives a default.
  3. map changes the value inside Some.

चलने योग्य Rust उदाहरण

Rust
कोड चलाएँ →
main.rs
fn find_user(id: u32) -> Option<&'static str> {
    match id {
        1 => Some("Ada"),
        2 => Some("Linus"),
        _ => None,
    }
}

fn main() {
    for id in [1, 3] {
        match find_user(id) {
            Some(name) => println!("user {id}: {name}"),
            None => println!("user {id}: not found"),
        }
    }

    let name = find_user(9).unwrap_or("guest");
    println!("{name}");

    let length = find_user(2).map(|name| name.len());
    println!("{:?}", length);
}
इस उदाहरण के लिए Run बटन बनाएँ कोड चलाने का परिणाम
user 1: Ada
user 3: not found
guest
Some(5)

अभ्यास

उदाहरण को ऑनलाइन कंपाइलर में खोलें, कोई मान बदलें या एक पंक्ति जोड़ें, और चलाने से पहले आउटपुट का अनुमान लगाएँ। फिर कोड में जान-बूझकर गलती करें और कंपाइलर का संदेश पढ़ें।

यह पाठ पूरा कर लिया?

अपनी प्रगति ट्रैक करने के लिए इसे सीखा हुआ मार्क करें।

अगला: Error Handling with Result →

चैलेंज से अभ्यास करें

इस पाठ में सीखी बात से एक असली समस्या हल करें। हर चैलेंज ब्राउज़र में चलता है, तुरंत टेस्ट और AI रिव्यू के साथ।

सभी चैलेंज