Rust

การจัดการข้อผิดพลาด

Result<T, E>, Option<T>, unwrap, expect, ?, ข้อผิดพลาดที่กำหนดเอง, การส่งต่อข้อผิดพลาด

18 คำถามสัมภาษณ์·
Junior
1

ชนิดข้อมูลใดของ Rust แทนค่าที่อาจมีอยู่หรือไม่มีอยู่ก็ได้?

คำตอบ

Option<T> เป็น enum ที่อาจเป็น Some(T) ซึ่งเก็บค่าไว้ หรือ None ซึ่งบ่งบอกถึงการไม่มีค่า ชนิดข้อมูลนี้มาแทนค่า null ที่มีในภาษาอื่นและบังคับให้นักพัฒนาจัดการกรณีที่ไม่มีค่าอย่างชัดเจน จึงหลีกเลี่ยงข้อผิดพลาด null pointer ขณะรันไทม์

2

ชนิดข้อมูลใดของ Rust ที่แสดงถึงการดำเนินการที่อาจสำเร็จหรือล้มเหลวพร้อมข้อผิดพลาด?

คำตอบ

Result<T, E> เป็น enum ที่มีสองรูปแบบ: Ok(T) สำหรับความสำเร็จซึ่งบรรจุค่าที่ส่งกลับ และ Err(E) สำหรับความล้มเหลวซึ่งบรรจุข้อผิดพลาด ชนิดข้อมูลนี้บังคับให้จัดการข้อผิดพลาดอย่างชัดเจนแทนการใช้ exception ทำให้โค้ดคาดเดาได้มากขึ้นและข้อผิดพลาดมองเห็นได้ชัดขึ้น

3

เมธอด unwrap() ทำอะไรกับ Option<T>?

คำตอบ

unwrap() จะคืนค่าที่อยู่ภายใน Some(T) หากมีค่านั้น หาก Option เป็น None โปรแกรมจะ panic (panic!) และหยุดทำงานทันที เมธอดนี้สะดวกสำหรับการสร้างต้นแบบ แต่ควรหลีกเลี่ยงในระบบโปรดักชันเพราะไม่ได้จัดการกรณี None อย่างนุ่มนวล

4

ความแตกต่างระหว่าง unwrap() และ expect() คืออะไร?

5

ตัวดำเนินการ ? ทำอะไรในฟังก์ชันที่คืนค่า Result<T, E>?

+15 คำถามสัมภาษณ์

เชี่ยวชาญ Rust สำหรับการสัมภาษณ์ครั้งถัดไป

เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์

เริ่มใช้ฟรี