
Type System
Zero-cost abstractions, newtype pattern, type aliases, phantom types, const generics
1Zero-cost abstraction ใน Rust คืออะไร?
Zero-cost abstraction ใน Rust คืออะไร?
คำตอบ
Zero-cost abstraction คือการ abstraction ที่ไม่ก่อให้เกิดต้นทุนใด ๆ ในขณะ runtime เมื่อเทียบกับโค้ดที่เขียนด้วยมือแบบเทียบเท่า คอมไพเลอร์ Rust จะ optimize การ abstraction เหล่านี้เพื่อให้โค้ดที่สร้างขึ้นมีประสิทธิภาพเทียบเท่ากับโค้ดระดับล่างที่เขียนด้วยมือ โดยไม่มี overhead เพิ่มเติม
2ข้อได้เปรียบหลักของ newtype pattern ใน Rust คืออะไร?
ข้อได้เปรียบหลักของ newtype pattern ใน Rust คืออะไร?
คำตอบ
Newtype pattern จะสร้างชนิดข้อมูลใหม่ที่แตกต่างซึ่งห่อหุ้มชนิดข้อมูลที่มีอยู่ ให้ความปลอดภัยด้านชนิดข้อมูลในขณะ compile time สิ่งนี้ป้องกันการสับสนระหว่างค่าที่มีชนิดพื้นฐานเดียวกันแต่มีความหมายต่างกัน เช่น user ID และ product ID ที่ถูกแทนด้วยจำนวนเต็มทั้งคู่
3จะประกาศ type alias ใน Rust ได้อย่างไร?
จะประกาศ type alias ใน Rust ได้อย่างไร?
คำตอบ
type alias ถูกประกาศด้วยคีย์เวิร์ด type ตามด้วยชื่อ alias และชนิดเป้าหมาย ตัวอย่างเช่น type Kilometers = i32 สร้าง alias สำหรับ i32 ซึ่งต่างจาก newtype pattern ตรงที่ type alias ไม่ใช่ชนิดใหม่ที่แยกต่างหาก แต่เป็นเพียงคำพ้องที่สามารถใช้แทนกันได้กับชนิดเดิม
ความแตกต่างระหว่าง type alias กับ newtype ในแง่ของ type safety คืออะไร?
phantom type ใน 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 ขั้นสูง
Tokio & Async I/O
การเพิ่มประสิทธิภาพ
Memory Management
Web Frameworks
Database Integration
Design Pattern ของ Rust
เชี่ยวชาญ Rust สำหรับการสัมภาษณ์ครั้งถัดไป
เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์
เริ่มใช้ฟรี