如何在Julia中重载/重新定义二元运算符?

时间:2014-03-31 20:47:56

标签: operator-overloading overloading julia binary-operators or-operator

我一直在失去关于如何重新定义||(“或”)或&&(“和”)二元运算符的参考。我读到某个地方必须先做importall Base。然后我试了

Base.||( x::MyType, y::MyType ) = dosomething( x, y )

以及

Base.or( x::MyType, y::MyType ) = dosomething( x, y ) 

但这些都没有奏效。如果有人可以提供一个参考来解释如何执行此操作的基础知识,我将不胜感激...我无法找到一个查询,例如“重新定义Julia中的二元运算符”......

1 个答案:

答案 0 :(得分:4)

As&&和||是短路操作,它们不能过载,不需要添加与功能分开的特殊结构。要调用函数,您需要评估所有参数,这不是短路评估。

你可能会超载&和|相反,但没有示例用例很难说。