Skip to content
เข้าสู่ระบบ

Macros

เคยสงสัยไหมครับว่าทำไม println! ถึงรับ Argument กี่ตัวก็ได้? คำตอบคือ Macros ครับ! Macros ใน Rust ทำงานกับ Syntax Tree ทำให้ทรงพลังและปลอดภัยกว่า C/C++ preprocessor

ลองนึกภาพว่า Macros เป็นเหมือน “โรงงานผลิตโค้ด” - เราเขียน template ไว้ แล้ว compiler จะ “ปั๊ม” โค้ดออกมาตาม template นั้น!

// ============================================
// 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 เพื่อปลดล็อกบทความทั้งหมด