4

F# は、他の .NET 言語からオーバーロードされた演算子をどのように処理しますか。

たとえば、オブジェクト自体の新しいインスタンスを返すために != がオーバーロードされているライブラリを使用しています。

例えば。

Object newObject = a != b;

F# で同じオブジェクトに対して <> 演算子を使用すると、bool 型の値が返されます。これの理由は何ですか?オーバーロードされた演算子を使用すべきではありませんか? そうでない場合、これらの演算子のオーバーロードを F# に拡張するにはどうすればよいですか?

4

1 に答える 1

2

ほとんどのオーバーロードされた演算子 (+、* など) は、問題なく F# から呼び出すことができます。ただし、F# の等価演算子と比較演算子はオーバーロードされていないため (F# は代わりに構造等価を使用します)、カスタム演算子を手動で呼び出す必要があります (例: MyType.(<>))。

于 2013-02-26T11:53:14.930 に答える