Option - ค่าที่อาจมีหรือไม่มี
Option ใช้แทน null/nil ในภาษาอื่น ปลอดภัยกว่าเพราะต้องจัดการกรณีว่างเสมอ!
Option คืออะไร?
Section titled “Option คืออะไร?”Option<T> มี 2 แบบ:
Some(value)- มีค่าNone- ไม่มีค่า
fn main() { // ============================================ // Option definition // ============================================
// enum Option<T> { // Some(T), // มีค่า // None, // ไม่มีค่า // }
// ============================================ // ทำไม Rust ไม่มี null? // ============================================
// null reference เป็น "billion dollar mistake" // - ลืม check null -> crash // - compiler ไม่ช่วยเตือน
// Option บังคับให้จัดการทุกกรณี // - compiler check ให้ // - ไม่มี null pointer exception
let some_number: Option<i32> = Some(42); let no_number: Option<i32> = None;
// ใช้ค่าตรงๆ ไม่ได้ ต้อง unwrap // let x = some_number + 1; // Error!
// ต้อง handle ทั้ง Some และ None match some_number { Some(n) => println!("มีค่า: {}", n), None => println!("ไม่มีค่า"), }}เข้าสู่ระบบเพื่อดูเนื้อหาเต็ม
ยืนยันตัวตนด้วยบัญชี Google เพื่อปลดล็อกบทความทั้งหมด
Login with Google