Rust

Generics

ฟังก์ชัน generic, struct, enum, trait bounds, where clause, monomorphization

20 คำถามสัมภาษณ์·
Mid-Level
1

ไวยากรณ์ที่ถูกต้องสำหรับการประกาศฟังก์ชัน generic ใน Rust คืออะไร?

คำตอบ

ใน Rust type parameter แบบ generic จะถูกประกาศโดยใช้ angle brackets หลังชื่อฟังก์ชัน ไวยากรณ์ fn name<T>(param: T) บ่งบอกว่า T เป็น type parameter ที่จะถูกกำหนดตอนใช้งาน จากนั้นคอมไพเลอร์จะสร้างโค้ดเฉพาะสำหรับแต่ละชนิดที่เป็นรูปธรรมที่ใช้เมื่อเรียกฟังก์ชัน

2

จะประกาศ struct แบบ generic ที่มีฟิลด์ชนิด T ได้อย่างไร?

คำตอบ

struct แบบ generic จะถูกประกาศด้วย type parameter ใน angle brackets หลังชื่อ struct ไวยากรณ์ struct Name<T> { field: T } ช่วยให้สร้างโครงสร้างที่นำกลับมาใช้ใหม่ได้กับชนิดที่แตกต่างกัน จากนั้นชนิด T สามารถใช้ในฟิลด์และเมธอดที่เกี่ยวข้องกับ struct นี้ได้

3

monomorphization ใน Rust คืออะไร?

คำตอบ

monomorphization คือกระบวนการที่คอมไพเลอร์ Rust สร้างโค้ดเครื่องเฉพาะสำหรับแต่ละชนิดที่เป็นรูปธรรมที่ใช้กับ generic ตัวอย่างเช่น หากฟังก์ชัน generic ถูกเรียกด้วย i32 และ String คอมไพเลอร์จะสร้างฟังก์ชันนั้นสองเวอร์ชันที่แตกต่างกัน สิ่งนี้รับประกันประสิทธิภาพที่ดีที่สุดโดยไม่มี overhead ขณะรันไทม์

4

จะเพิ่ม trait bound ให้กับพารามิเตอร์ generic T ได้อย่างไร?

5

ความแตกต่างระหว่างไวยากรณ์ impl<T> Struct<T> และ impl Struct<i32> คืออะไร?

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

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

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

เริ่มใช้ฟรี