标签: macros operator-overloading elixir
我正在尝试覆盖elixir中的.(点)运算符。我能够覆盖其他二元运算符(例如defmacro a + b do可以正常覆盖+),但当我尝试用.覆盖defmacro a . b do时,我会得到以下结果错误: defmacro a.b()
.
defmacro a + b do
+
defmacro a . b do
是否有人知道覆盖.的正确语法?我试图找到实现点访问地图的代码,但我没有成功。
答案 0 :(得分:4)
.(点)运算符是special form。
来自docs:
特殊形式是Elixir的基本构建块,因此 不能被开发者覆盖。