2016年11月29日火曜日

Elixirのマクロ(Macros)で利用される「__using__」

Elixirのマクロ(Macros)で利用される「__using__」です。ブログを書いていて虚しいのですが、よくわかりません。マクロ(Macros)自体がわかりませんから、当然といえば、当然ですが。笑ってやってください。サンプルだけコピーしておきます。
モジュールでuseを呼び出すと、そのモジュールで__using__マクロが呼び出され、開発者は必要なコードを生成できます。 また、引数リストも取ります。
defmodule AwesomeLibrary do  
  defmacro __using__(_) do
    quote do
      def print(s), do: IO.puts(s)
    end
  end
end
defmodule TestLibrary do  
  use AwesomeLibrary
end
iex(1)> TestLibrary.print("Hello World")  
Hello World  
:ok

参考サイト
[Elixir]__using__について分かったこと(Code of Resistance!!さん)
What's 'use' statement in Elixir?(zabirauf || Zohaibさん)
Elixirでマクロ(Macros)

0 件のコメント:

コメントを投稿