Tour of Rust Table of Contents

การจัดการ Option/Result แบบขี้เหร่

บางทีการที่ต้องทำงานกับ Option/Result ก็แอบน่าเบื่ออยู่บ้าง เวลาที่เราเร่งเขียนโค้ดอยู่ ทีนี้เจ้า Option และ Result คู่นี้มันมีฟังก์ชันที่ชื่อว่า unwrap อยู่ด้วย เพื่อดึงค่าออกมาแบบเร็วๆ ซึ่งไม่ควรทำ โดย unwrap จะทำดังนี้:

  1. ดึงค่าใน Option/Result ออกมา
  2. ถ้าเจอค่าใน enum เป็น None/Err จะ panic!

มาดูสองคำสั่งที่ทำงานเหมือนกันแต่เขียนคนละแบบ:

my_option.unwrap()
match my_option {
    Some(v) => v,
    None => panic!("some error message generated by Rust!"),
}

ในทำนองเดียวกัน:

my_result.unwrap()
match my_result {
    Ok(v) => v,
    Err(e) => panic!("some error message generated by Rust!"),
}

จงเป็น rustacean ที่ดี และใช้ match เถอะ