4

F# 如何处理来自其他 .NET 语言的重载运算符。

例如,我正在使用一个库,其中 != 已被重载以返回对象本身的新实例。

例如。

Object newObject = a != b;

当我在 F# 中对同一对象使用 <> 运算符时,将返回 bool 类型的值。这是什么原因?不应该使用重载运算符吗?如果不是,我如何将这些运算符重载扩展到 F#?

4

1 回答 1

2

大多数重载运算符(+、* 等)都可以毫无问题地从 F# 调用。但是,F# 的相等和比较运算符没有重载(F# 使用结构相等代替),因此您需要手动调用自定义运算符(例如MyType.(<>))。

于 2013-02-26T11:53:14.930 回答