1
我試圖覆蓋elixir中的.
(點)運算符。我能夠超越其他二元運算符(例如defmacro a + b do
用於覆蓋+
正常工作),但是當我嘗試重寫.
與defmacro a . b do
,我收到以下錯誤:在defmacro AB() 無效語法如何覆蓋。運營商在elixir?
有誰知道覆蓋.
的正確語法?我試圖找到實現對地圖的點訪問的代碼,但我沒有成功。
我試圖覆蓋elixir中的.
(點)運算符。我能夠超越其他二元運算符(例如defmacro a + b do
用於覆蓋+
正常工作),但是當我嘗試重寫.
與defmacro a . b do
,我收到以下錯誤:在defmacro AB() 無效語法如何覆蓋。運營商在elixir?
有誰知道覆蓋.
的正確語法?我試圖找到實現對地圖的點訪問的代碼,但我沒有成功。
.
(點)運算符是special form。
從docs:
Special forms are the basic building blocks of Elixir, and therefore cannot be overridden by the developer.
說到作爲曾經的C++開發者,覆蓋內置的運營商是非常危險的反正。應該是最後一招,而不是第一種方法。 –