
Lifetimes
Lifetime annotation, กฎ elision, lifetime 'static, lifetime ของ struct, lifetime bounds
1จุดประสงค์หลักของ lifetime ใน Rust คืออะไร?
จุดประสงค์หลักของ lifetime ใน Rust คืออะไร?
คำตอบ
Lifetime ช่วยให้ compiler ตรวจสอบว่า reference ทั้งหมดใช้งานได้ตลอดช่วงการใช้งาน โดยรับประกันว่า reference จะไม่มีอายุยืนกว่าข้อมูลที่มันอ้างถึง จึงป้องกัน dangling reference ได้ borrow checker ใช้ lifetime เพื่อตรวจสอบความปลอดภัยของหน่วยความจำในขณะคอมไพล์ โดยไม่มี overhead ขณะรันไทม์
2ใช้ไวยากรณ์ใดในการระบุ lifetime บน reference?
ใช้ไวยากรณ์ใดในการระบุ lifetime บน reference?
คำตอบ
Lifetime ถูกระบุด้วยเครื่องหมายอะพอสทรอฟีตามด้วยชื่อ โดยทั่วไปเป็นตัวอักษรพิมพ์เล็กเช่น 'a ไวยากรณ์ &'a T หมายถึง reference ไปยัง T ที่มี lifetime 'a ตามธรรมเนียมจะใช้ 'a, 'b, 'c สำหรับ lifetime แบบ generic แต่สามารถใช้ตัวระบุที่ถูกต้องใด ๆ หลังเครื่องหมายอะพอสทรอฟีได้
3Lifetime 'static หมายความว่าอย่างไรใน Rust?
Lifetime 'static หมายความว่าอย่างไรใน Rust?
คำตอบ
Lifetime 'static แสดงว่า reference สามารถมีอายุได้ตลอดช่วงเวลาทั้งหมดของโปรแกรม string literal เช่น "hello" จะมี lifetime 'static โดยอัตโนมัติเพราะถูกฝังอยู่ใน binary ค่าคงที่ระดับ global และค่าที่สร้างด้วย Box::leak ก็มี lifetime นี้เช่นกัน หมายเหตุ: 'static ไม่ได้หมายความว่าค่ามีอยู่ตั้งแต่เริ่มโปรแกรม แต่หมายความว่ามันสามารถมีอายุอยู่จนจบได้
Compiler ของ Rust ใช้กฎ lifetime elision โดยอัตโนมัติกี่ข้อ?
ทำไมฟังก์ชัน fn longest(x: &str, y: &str) -> &str จึงคอมไพล์ไม่ได้?
+17 คำถามสัมภาษณ์
หัวข้อสัมภาษณ์ Rust อื่นๆ
พื้นฐาน Rust
Ownership & Borrowing
Structs & Enums
การจัดการข้อผิดพลาด
คอลเลกชัน
โมดูลและแพ็กเกจ
Traits
Generics
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 และตัวจำลองสัมภาษณ์
เริ่มใช้ฟรี