Unsafe Rust
คำว่า unsafe ใน Rust ไม่ได้แปลว่า “โค้ดอันตราย” เสมอไปนะครับ
มันแปลว่า “โค้ดนี้ Compiler ตรวจสอบความปลอดภัยให้ไม่ได้… มนุษย์จงรับผิดชอบเอง!”
ลองนึกภาพว่า Rust เหมือนรถที่มีระบบความปลอดภัยเต็มคัน (ABS, Airbag, ฯลฯ) แต่บางครั้งเราต้องปิดระบบเหล่านั้นเพื่อทำอะไรพิเศษ เช่น นักแข่งรถที่ต้อง control รถเองทุกอย่าง
1. Unsafe Superpowers
Section titled “1. Unsafe Superpowers”เมื่อเราพิมพ์ unsafe { ... } เราจะได้รับ 5 พลังพิเศษ:
| Power | Description | Example |
|---|---|---|
| Dereference raw pointers | เข้าถึงข้อมูลผ่าน pointer ตรงๆ | *ptr |
| Call unsafe functions | เรียกฟังก์ชันที่ประกาศว่า unsafe | dangerous_fn() |
| Access mutable statics | แก้ไขตัวแปร global | COUNTER += 1 |
| Implement unsafe traits | เช่น Send/Sync | unsafe impl Send |
| Access union fields | อ่านข้อมูลใน union | u.field |
เข้าสู่ระบบเพื่อดูเนื้อหาเต็ม
ยืนยันตัวตนด้วยบัญชี Google เพื่อปลดล็อกบทความทั้งหมด
Login with Google