
การจัดการข้อผิดพลาด
Result<T, E>, Option<T>, unwrap, expect, ?, ข้อผิดพลาดที่กำหนดเอง, การส่งต่อข้อผิดพลาด
1ชนิดข้อมูลใดของ Rust แทนค่าที่อาจมีอยู่หรือไม่มีอยู่ก็ได้?
ชนิดข้อมูลใดของ Rust แทนค่าที่อาจมีอยู่หรือไม่มีอยู่ก็ได้?
คำตอบ
Option<T> เป็น enum ที่อาจเป็น Some(T) ซึ่งเก็บค่าไว้ หรือ None ซึ่งบ่งบอกถึงการไม่มีค่า ชนิดข้อมูลนี้มาแทนค่า null ที่มีในภาษาอื่นและบังคับให้นักพัฒนาจัดการกรณีที่ไม่มีค่าอย่างชัดเจน จึงหลีกเลี่ยงข้อผิดพลาด null pointer ขณะรันไทม์
2ชนิดข้อมูลใดของ Rust ที่แสดงถึงการดำเนินการที่อาจสำเร็จหรือล้มเหลวพร้อมข้อผิดพลาด?
ชนิดข้อมูลใดของ Rust ที่แสดงถึงการดำเนินการที่อาจสำเร็จหรือล้มเหลวพร้อมข้อผิดพลาด?
คำตอบ
Result<T, E> เป็น enum ที่มีสองรูปแบบ: Ok(T) สำหรับความสำเร็จซึ่งบรรจุค่าที่ส่งกลับ และ Err(E) สำหรับความล้มเหลวซึ่งบรรจุข้อผิดพลาด ชนิดข้อมูลนี้บังคับให้จัดการข้อผิดพลาดอย่างชัดเจนแทนการใช้ exception ทำให้โค้ดคาดเดาได้มากขึ้นและข้อผิดพลาดมองเห็นได้ชัดขึ้น
3เมธอด unwrap() ทำอะไรกับ Option<T>?
เมธอด unwrap() ทำอะไรกับ Option<T>?
คำตอบ
unwrap() จะคืนค่าที่อยู่ภายใน Some(T) หากมีค่านั้น หาก Option เป็น None โปรแกรมจะ panic (panic!) และหยุดทำงานทันที เมธอดนี้สะดวกสำหรับการสร้างต้นแบบ แต่ควรหลีกเลี่ยงในระบบโปรดักชันเพราะไม่ได้จัดการกรณี None อย่างนุ่มนวล
ความแตกต่างระหว่าง unwrap() และ expect() คืออะไร?
ตัวดำเนินการ ? ทำอะไรในฟังก์ชันที่คืนค่า Result<T, E>?
+15 คำถามสัมภาษณ์
หัวข้อสัมภาษณ์ Rust อื่นๆ
พื้นฐาน Rust
Ownership & Borrowing
Structs & Enums
คอลเลกชัน
โมดูลและแพ็กเกจ
Traits
Generics
Lifetimes
Iterators & Closures
Smart Pointers
Concurrency Basics
async/await
Testing
Cargo & Ecosystem
Pattern Matching
มาโคร
Serde และการ Serialization
Unsafe Rust
Trait ขั้นสูง
Lifetime ขั้นสูง
Type System
Tokio & Async I/O
การเพิ่มประสิทธิภาพ
Memory Management
Web Frameworks
Database Integration
Design Pattern ของ Rust
เชี่ยวชาญ Rust สำหรับการสัมภาษณ์ครั้งถัดไป
เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์
เริ่มใช้ฟรี