3

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

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

并且

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

但这些都不起作用。如果有人可以提供参考解释如何执行此操作的基础知识,我将不胜感激......我无法找到具有诸如“在 Julia 中重新定义二元运算符”之类的查询......

4

1 回答 1

4

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

您可能可以重载 & 和 | 相反,但是如果没有示例用例就很难说。

于 2014-03-31T21:16:35.510 回答