关于如何重新定义||(“ 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/

10-10 19:46