
Unsafe Rust
Unsafe blocks, raw pointers (*const T, *mut T), FFI, unsafe traits, Undefined Behavior (UB), safety invariants
1คีย์เวิร์ดใดที่เปิดใช้งานพลังพิเศษของโหมด unsafe ใน Rust?
คีย์เวิร์ดใดที่เปิดใช้งานพลังพิเศษของโหมด unsafe ใน Rust?
คำตอบ
คีย์เวิร์ด unsafe ปลดล็อกความสามารถห้าอย่างที่ถูกห้ามใน safe Rust ได้แก่ การ dereference raw pointers, การเรียกฟังก์ชัน unsafe, การเข้าถึงตัวแปร static แบบ mutable, การ implement unsafe traits และการเข้าถึง field ของ union บล็อกนี้ส่งสัญญาณให้ compiler ทราบว่านักพัฒนารับผิดชอบในการรับประกัน memory safety
2โค้ด unsafe ปลดล็อกความสามารถเพิ่มเติมกี่อย่างเมื่อเทียบกับ safe Rust?
โค้ด unsafe ปลดล็อกความสามารถเพิ่มเติมกี่อย่างเมื่อเทียบกับ safe Rust?
คำตอบ
โหมด unsafe ปลดล็อกความสามารถพอดี 5 อย่าง: การ dereference raw pointer, การเรียกฟังก์ชันหรือเมธอด unsafe, การเข้าถึงหรือแก้ไขตัวแปร static ที่ mutable, การ implement trait unsafe และการเข้าถึงฟิลด์ของ union ทั้ง 5 การดำเนินการนี้คือความแตกต่างเพียงอย่างเดียวระหว่าง safe กับ unsafe Rust
3ไวยากรณ์ที่ถูกต้องในการสร้าง raw pointer แบบ immutable ไปยังตัวแปรใน Rust คืออะไร?
ไวยากรณ์ที่ถูกต้องในการสร้าง raw pointer แบบ immutable ไปยังตัวแปรใน Rust คืออะไร?
คำตอบ
ไวยากรณ์ในการสร้าง raw pointer แบบ immutable คือ let ptr = &x as *const T ประเภท *const T แทน raw pointer แบบ immutable การสร้าง raw pointer นั้น safe มีเพียง deref เท่านั้นที่ต้องใช้บล็อก unsafe สามารถใช้การ coercion โดยปริยายด้วย let ptr: *const T = &x ได้เช่นกัน
ความแตกต่างระหว่าง *const T กับ *mut T ใน Rust คืออะไร?
เหตุใดการสร้าง raw pointer จึงได้รับอนุญาตใน safe Rust ในขณะที่การ dereference ไม่ได้รับอนุญาต?
+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
Trait ขั้นสูง
Lifetime ขั้นสูง
Type System
Tokio & Async I/O
การเพิ่มประสิทธิภาพ
Memory Management
Web Frameworks
Database Integration
Design Pattern ของ Rust
เชี่ยวชาญ Rust สำหรับการสัมภาษณ์ครั้งถัดไป
เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์
เริ่มใช้ฟรี