
Memory Management
Stack กับ heap, allocator, Drop trait, RAII, การรั่วไหลของหน่วยความจำจากวงจร Rc, Pin<T>
1ใน Rust ตัวแปรท้องถิ่นที่เป็นชนิดพื้นฐานอย่าง i32 หรือ bool ถูกเก็บไว้ที่ใด?
ใน Rust ตัวแปรท้องถิ่นที่เป็นชนิดพื้นฐานอย่าง i32 หรือ bool ถูกเก็บไว้ที่ใด?
คำตอบ
ตัวแปรท้องถิ่นที่เป็นชนิดพื้นฐานจะถูกเก็บไว้บน stack โดย stack ให้การจัดสรรและคืนหน่วยความจำที่รวดเร็วมากเพราะทำงานตามหลักการ LIFO (Last In, First Out) ชนิดพื้นฐานมีขนาดที่ทราบในเวลาคอมไพล์ ซึ่งทำให้คอมไพเลอร์สามารถจองพื้นที่ที่จำเป็นบน stack frame ของฟังก์ชันปัจจุบันได้
2ควรใช้ smart pointer ตัวใดในการจัดสรรค่าบน heap โดยมีเจ้าของเพียงรายเดียว?
ควรใช้ smart pointer ตัวใดในการจัดสรรค่าบน heap โดยมีเจ้าของเพียงรายเดียว?
คำตอบ
Box<T> เป็น smart pointer ที่ง่ายที่สุดสำหรับการจัดสรรบน heap มันรับประกันการเป็นเจ้าของเพียงรายเดียวและคืนหน่วยความจำโดยอัตโนมัติเมื่อ Box ออกจาก scope Box มีประโยชน์สำหรับชนิดที่ไม่ทราบขนาดในเวลาคอมไพล์ สำหรับโครงสร้างขนาดใหญ่ที่ไม่ต้องการคัดลอกบน stack หรือสำหรับชนิดแบบเรียกซ้ำ
3รูปแบบ RAII (Resource Acquisition Is Initialization) ใน Rust คืออะไร?
รูปแบบ RAII (Resource Acquisition Is Initialization) ใน Rust คืออะไร?
คำตอบ
RAII เป็นรูปแบบที่ทรัพยากร (หน่วยความจำ ไฟล์ การเชื่อมต่อ) ถูกจัดสรรในระหว่างการสร้างออบเจ็กต์และถูกปล่อยคืนโดยอัตโนมัติเมื่อออบเจ็กต์ถูกทำลาย ใน Rust สิ่งนี้ทำผ่าน trait Drop ซึ่งจะถูกเรียกโดยอัตโนมัติเมื่อค่าออกจาก scope รูปแบบนี้รับประกันว่าจะไม่มีทรัพยากรใดถูกลืมและป้องกันการรั่วไหลของหน่วยความจำ
trait Drop ถูกเรียกโดยอัตโนมัติเมื่อใดใน Rust?
จะสร้างการรั่วไหลของหน่วยความจำ (memory leak) ด้วย Rc<T> ใน Rust ได้อย่างไร?
+17 คำถามสัมภาษณ์
หัวข้อสัมภาษณ์ 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
การเพิ่มประสิทธิภาพ
Web Frameworks
Database Integration
Design Pattern ของ Rust
เชี่ยวชาญ Rust สำหรับการสัมภาษณ์ครั้งถัดไป
เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์
เริ่มใช้ฟรี