宏参数字符串化(Stringifying Macro Arguments)
这个功能有时候还真挺有用的(虽然 elixir 不需要~), 比如测试用例和打日志的时候.
语法是: ??Arg
例如:
1 | -define(TESTCALL(Call), io:format("Call ~s: ~w~n", [??Call, Call])). |
上面的 ?TESTCALL
那两行展开后会变成下面这样:
1 | io:format("Call ~s: ~w~n",["myfunction(1,2)", myfunction(1,2)]), |
参考链接
http://erlang.org/doc/reference_manual/macros.html#stringifying-macro-arguments