guest@blog.cmj.tw: ~/posts $

Rust 102


metaprogramming

下一個進階的 Rust 使用方式: macro 。跟大多數語言一樣 rust 也有支援 preprocessor 或者稱為 metaprogramming ,也就是程式在執行之前預先根據邏輯產生新的程式碼,而在 rust 中則是使用 macro_rules! 來定義。跟 C/C++ 的 preprocessor 不一樣 rust 是透過展開成為 AST (Abstract syntax tree) ,因此不會產生預期以外的優先順序 bug。使用 macro 的時機大致上分為幾種:1) 重複性的代碼、2)可變動的參數與 3) 特定領域的語言。