fsharp中的自定义比较和相等

nic*_*las 6 comparison f#

似乎必须重写Equality才能覆盖比较.

这是真的吗?有什么理由让我失踪吗?

Jar*_*Par 6

不可以.只能进行自定义比较

[<CustomComparison>]
[<StructuralEquality>]
type Node =
    | Data of string
    | Nil

    with

    interface System.IComparable with 
        member x.CompareTo y = 0
Run Code Online (Sandbox Code Playgroud)

请注意,此代码将产生一个警告,建议您在类型上实现相等性.这通常是一个好主意.如果你经历了实现比较的麻烦,那么直接相等(比较== 0).