如何覆盖。长生不老药?

时间:2016-03-27 02:13:03

标签: macros operator-overloading elixir

我正在尝试覆盖elixir中的.(点)运算符。我能够覆盖其他二元运算符(例如defmacro a + b do可以正常覆盖+),但当我尝试用.覆盖defmacro a . b do时,我会得到以下结果错误:     defmacro a.b()

中的语法无效

是否有人知道覆盖.的正确语法?我试图找到实现点访问地图的代码,但我没有成功。

1 个答案:

答案 0 :(得分:4)

.(点)运算符是special form

来自docs

  

特殊形式是Elixir的基本构建块,因此     不能被开发者覆盖。