F#如何处理来自其他.NET语言的重载运算符。
例如,我正在使用一个库,其中!=已被重载以返回对象本身的新实例。
例如
Object newObject = a != b;
当我使用<>时对F#中同一对象的运算符返回bool类型的值。这是什么原因?不应该使用重载运算符吗?如果没有,我如何将这些运算符重载扩展到F#?
答案 0 :(得分:2)
大多数重载的运算符(+,*等)都可以从F#中调用而不会出现问题。但是,F#的相等和比较运算符不会超载(F#使用结构相等),因此您需要手动调用自定义运算符(例如MyType.(<>)
)。