Skip to content
เข้าสู่ระบบ

Option - ค่าที่อาจมีหรือไม่มี

Option ใช้แทน null/nil ในภาษาอื่น ปลอดภัยกว่าเพราะต้องจัดการกรณีว่างเสมอ!

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 เพื่อปลดล็อกบทความทั้งหมด