マクロ

マクロはコードを書くためのコード(メタプログラミング)です。コード(code)を生成する(generate)ので*_codegenという名前でクレートが提供されてたりします。マクロを使うと何度も記述しなければ行けないような部分を1箇所にまとめて効率よくコードを書くことができます。

(難しいのでまだ理解と中身が不十分です🙇)

マクロはmacro_rules! <name>で宣言します。例えばmacro_rules! foo {}で作ったマクロはfoo!で呼び出せます。

例えば以下のマクロは、実行時にprintln!(...)というコードに置き換わるマクロです。

macro_rules! printlnprintln {
  ( $($x:expr),* ) => {
    println!($($x),*);
  };
}

// printlnprintln!("{} {}", "I'm", "nju33");
// → println!("{} {}", "I'm", "nju33");

TBW