2016-03-27 51 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.