前書き
マクロは、コンパイル時のメタプログラミングの一形態です。注釈やメソッドなど、Scalaコードの特定の要素は、コンパイル時に他のコードを変換するために作成できます。マクロは、他のコードを表すデータ型で動作する通常のScalaコードです。 [Macro Paradise] []プラグインは、マクロの能力を基本言語を超えて拡張します。 [マクロパラダイス]:http://docs.scala-lang.org/overviews/macros/paradise.html
構文
- def x()=マクロx_impl // xはマクロで、x_implはコードを変換するために使われます
- def macroTransform(annottees:Any *):Any =マクロimpl //アノテーションでマクロを使用する
備考
マクロは、 scala.language.macros
をインポートscala.language.macros
か、コンパイラオプション-language:macros
使用して、有効にする必要がある言語機能です。マクロ定義だけがこれを必要とします。マクロを使用するコードでは必要ありません。
マクロ 関連する例