3

|| ("or") または&&("and") 二項演算子を再定義する方法についての参照を失い続けています。私は最初にやらなければならないことをどこかで読みimportall Baseました。それから私は試しました

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

そしてまた

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

しかし、これらのどれも機能しませんでした。誰かがこれを行う方法の基本を説明するリファレンスを提供できれば幸いです...「ジュリアで二項演算子を再定義する」などのクエリを含むものを見つけることができませんでした...

4

1 に答える 1

4

&& および || として 関数とは別の特別な構造を追加しない限り、オーバーロードすることはできません。関数を呼び出すには、すべての引数を評価する必要があり、それは短絡評価ではありません。

& と | をオーバーロードできる場合があります。代わりに、ユースケースの例がないとわかりにくいです。

于 2014-03-31T21:16:35.510 に答える