Macros
เคยสงสัยไหมครับว่าทำไม println! ถึงรับ Argument กี่ตัวก็ได้?
คำตอบคือ Macros ครับ!
Macros ใน Rust ทำงานกับ Syntax Tree ทำให้ทรงพลังและปลอดภัยกว่า C/C++ preprocessor
ลองนึกภาพว่า Macros เป็นเหมือน “โรงงานผลิตโค้ด” - เราเขียน template ไว้ แล้ว compiler จะ “ปั๊ม” โค้ดออกมาตาม template นั้น!
1. Declarative Macros (macro_rules!)
Section titled “1. Declarative Macros (macro_rules!)”1.1 Basic Macro
Section titled “1.1 Basic Macro”// ============================================// macro_rules! = สร้าง declarative macro// say_hello = ชื่อ macro// ============================================macro_rules! say_hello { // ============================================ // Pattern: () = ถ้าไม่มี argument // => { ... } = ให้ expand เป็นโค้ดนี้ // ============================================ () => { println!("Hello!"); };}
fn main() { // ============================================ // เรียก macro ด้วย ! หลังชื่อ // ============================================ say_hello!(); // expands to: println!("Hello!");}เข้าสู่ระบบเพื่อดูเนื้อหาเต็ม
ยืนยันตัวตนด้วยบัญชี Google เพื่อปลดล็อกบทความทั้งหมด
Login with Google