2016-03-27 17 views
1

我试图覆盖elixir中的.(点)运算符。我能够超越其他二元运算符(例如defmacro a + b do用于覆盖+正常工作),但是当我尝试重写.defmacro a . b do,我收到以下错误:在defmacro AB() 无效语法如何覆盖。运营商在elixir?

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

+0

说到作为曾经的C++开发者,覆盖内置的运营商是非常危险的反正。应该是最后一招,而不是第一种方法。 –

回答

4

.(点)运算符是special form

docs

Special forms are the basic building blocks of Elixir, and therefore cannot be overridden by the developer.