Rust

มาโคร

มาโครเชิงประกาศ (macro_rules!), derive macros, attribute macros, มาโครเชิงกระบวนการ, สุขลักษณะของมาโคร

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

ไวยากรณ์ใดที่ใช้ในการกำหนด declarative macro ใน Rust?

คำตอบ

ไวยากรณ์ macro_rules! ใช้ในการกำหนด declarative macro ใน Rust รูปแบบ metaprogramming นี้ใช้ pattern matching บนไวยากรณ์ Rust เพื่อแปลงโค้ดในเวลาคอมไพล์ declarative macro ยังถูกเรียกว่า "macros by example" เพราะทำงานโดยการจับคู่รูปแบบและสร้างโค้ดจากรูปแบบเหล่านั้น

2

จะเรียกใช้มาโครใน Rust ได้อย่างไร?

คำตอบ

มาโครใน Rust ถูกเรียกใช้ด้วยเครื่องหมายอัศเจรีย์หลังชื่อ ตามด้วยอาร์กิวเมนต์ในวงเล็บ วงเล็บเหลี่ยม หรือวงเล็บปีกกา ข้อกำหนดนี้ช่วยให้แยกแยะการเรียกมาโครจากการเรียกฟังก์ชันปกติได้ด้วยสายตา ตัวอย่างเช่น println!("Hello") หรือ vec![1, 2, 3] เป็นการเรียกใช้มาโคร

3

ใช้ fragment specifier ใดเพื่อจับ expression ใน declarative macro?

คำตอบ

fragment specifier $e:expr จับ expression ของ Rust ใน declarative macro fragment specifier กำหนดประเภทของไวยากรณ์ที่มาโครสามารถรับได้ specifier ทั่วไปอื่น ๆ ได้แก่ ident สำหรับ identifier, ty สำหรับ type, tt สำหรับ token tree และ block สำหรับบล็อกโค้ด

4

ความแตกต่างหลักระหว่าง declarative macro กับ procedural macro คืออะไร?

5

macro hygiene ใน Rust คืออะไร?

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

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

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

เริ่มใช้ฟรี