【发布时间】:2015-10-21 02:51:45
【问题描述】:
我目前正在尝试编写一些宏,想知道语法规则是什么。为什么我可以创建宏~>>,但是|>>给我一个语法错误?
defmacro lhs ~>> rhs
# Works fine
defmacro lhs |>> rhs
# syntax error before: '>'
【问题讨论】:
-
除了 Michal 在下面所说的之外,我还注意到 "|>" 是 Elixir 中定义的运算符,而据我所知, ~> 不是。因此,表达式可能被解析为 |> > 而不是 |>>。尝试执行 += 宏会导致 = 之前出现语法错误。