f# - fsharp 中的自定义比较和相等

标签 f# comparison

似乎必须覆盖 Equality 才能覆盖比较。

这是真的吗?我失踪有什么原因吗?

最佳答案

不。可以只进行自定义比较

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

    with

    interface System.IComparable with 
        member x.CompareTo y = 0

请注意,此代码将产生一个警告,建议您也对类型实现相等性。这通常是一个好主意。如果您经历了实现比较的麻烦,那么就可以直接进行平等(比较 == 0)。

关于f# - fsharp 中的自定义比较和相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9536803/

相关文章:

silverlight - 在 Windows Phone 上使用 F# sprintf "%A"时出现反射错误

c# - 对象的组成与函数: Should I use one method interfaces or delegates?

c# - 区分更新条目(业务逻辑对象)

javascript - JavaScript 中的空数组是否为真?

c++ - 英特尔 TBB 和微软 PPL 有什么区别?

c - strncmp 无法正常工作

arrays - 在数组数组上使用 Array.map

visual-studio - F#双击文件在VS中创建一个副本

f# - if 需要 else 子句

c# - base64编码图片的快速对比