Rust

Type System

Zero-cost abstractions, newtype pattern, type aliases, phantom types, const generics

20 คำถามสัมภาษณ์·
Senior
1

Zero-cost abstraction ใน Rust คืออะไร?

คำตอบ

Zero-cost abstraction คือการ abstraction ที่ไม่ก่อให้เกิดต้นทุนใด ๆ ในขณะ runtime เมื่อเทียบกับโค้ดที่เขียนด้วยมือแบบเทียบเท่า คอมไพเลอร์ Rust จะ optimize การ abstraction เหล่านี้เพื่อให้โค้ดที่สร้างขึ้นมีประสิทธิภาพเทียบเท่ากับโค้ดระดับล่างที่เขียนด้วยมือ โดยไม่มี overhead เพิ่มเติม

2

ข้อได้เปรียบหลักของ newtype pattern ใน Rust คืออะไร?

คำตอบ

Newtype pattern จะสร้างชนิดข้อมูลใหม่ที่แตกต่างซึ่งห่อหุ้มชนิดข้อมูลที่มีอยู่ ให้ความปลอดภัยด้านชนิดข้อมูลในขณะ compile time สิ่งนี้ป้องกันการสับสนระหว่างค่าที่มีชนิดพื้นฐานเดียวกันแต่มีความหมายต่างกัน เช่น user ID และ product ID ที่ถูกแทนด้วยจำนวนเต็มทั้งคู่

3

จะประกาศ type alias ใน Rust ได้อย่างไร?

คำตอบ

type alias ถูกประกาศด้วยคีย์เวิร์ด type ตามด้วยชื่อ alias และชนิดเป้าหมาย ตัวอย่างเช่น type Kilometers = i32 สร้าง alias สำหรับ i32 ซึ่งต่างจาก newtype pattern ตรงที่ type alias ไม่ใช่ชนิดใหม่ที่แยกต่างหาก แต่เป็นเพียงคำพ้องที่สามารถใช้แทนกันได้กับชนิดเดิม

4

ความแตกต่างระหว่าง type alias กับ newtype ในแง่ของ type safety คืออะไร?

5

phantom type ใน Rust คืออะไร?

+17 คำถามสัมภาษณ์

เชี่ยวชาญ Rust สำหรับการสัมภาษณ์ครั้งถัดไป

เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์

เริ่มใช้ฟรี