关于如何重新定义||
(“ or”)或&&
(“ and”)二进制运算符,我一直失去参考。我读到某个地方必须先做importall Base
。然后我尝试
Base.||( x::MyType, y::MyType ) = dosomething( x, y )
并且
Base.or( x::MyType, y::MyType ) = dosomething( x, y )
但是这些都不起作用。如果有人可以提供解释此操作基础知识的参考,我将不胜感激。我无法通过诸如“在Julia中重新定义二进制运算符”之类的查询找到一个...
最佳答案
作为&&和||是短路操作,如果不添加与功能分开的特殊构造,它们将不会过载。要调用一个函数,您需要评估所有参数,而这并不是短路评估。
您可能可以重载&和|相反,但是如果没有示例用例就很难说出来。
关于operator-overloading - 如何在Julia中重载/重新定义二进制运算符?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22771875/