只有在 Tracer 模块完全编译好并对编译器可用的情况下, 我们才能调用 trace 宏....由于宏也是函数, 而 Elixir 在调用函数时可以省略括号, 所以我们可以这样写:
Tracer.trace 1+2
这很可能是 Elixir 之所以不在函数调用时要求括号的最主要原因....然而, 对于许多常量(原子, 数字, 字符串), 引用(quoted)形式和输入值完全一样. 此外, 二元元组和列表会在被引用(quoted)时保持它们的结构....}, b: {:y, [], Elixir}]
在第一个例子中, 你可以看到输入的关键词列表完全没变....是一样的, 所以当我们调用 get route do ... end 时, 我们实际上是在调用 get(route, do: ...)