Listen

Description

第32章へようこそ。

今日のテーマは「宣言的マクロ」です。

これまでの章では、関数を使ってコードの構造を組み立ててきました。

引数を取り、処理を行い、戻り値を返す。

再利用したい処理を関数として切り出す。

ほとんどの抽象は関数で書ける。

しかし関数では書けないものがあります。

要素の個数を決めずに配列を作る、引数の型に応じてフォーマットを組み立てる、ある構造体に対する一連のメソッドをまとめて生成する。

こうした操作は関数の枠を出ている。

これらを書くために、Rustにはマクロという別の仕組みが用意されている。

今日扱うのは、マクロが関数では届かない領域を扱う仕組みであること、

コンパイル時にコードを変換するという位置づけ、

そして基本の道具であるmacro_rules!の構造です。