![]() |
1
4
课本答案: 运算符重载不是公共语言规范的一部分,这意味着编译器编写者可以随意忽略或仅在他们认为需要时部分支持它。作为一名图书馆作家,你有责任为人们提供与班级合作的其他方式。 务实的回答: 因为一开始做这件事是愚蠢的。为进行比较,显式创建了op greaterthan方法。你不应该用它来做“有趣”的事情,比如把两个术语具体化。CLR只允许您滥用它,因为它需要支持像C++这样的传统语言。 顺便说一句,把两件事结合在一起会有一种超负荷的情况。它被称为op_concatenate。你真的应该考虑使用它而不是更大。 编辑 几乎很好的答案: 在f中,我提到的concatation操作符是^。 我称之为几乎好的答案,因为我不太确定C是否支持它。我认为只有在vb和f中才允许使用。 编辑第2页 似乎F并不是为了纪念^过载。 编辑第3页 世界跆拳道在这里进行吗?F根本不尊重>操作员。当然,您可以重载它,它会正确地发出比方法更大的操作,但它忽略了它。它甚至不尝试使用op greaterthan,而是查找System.IComparable接口。 更糟糕的是,这是一个运行时检查。尽管它可以静态地确定类foo不实现IComparable,但它仍然继续进行并无论如何编译代码。 |
![]() |
2
2
直观地说,比较运算符
你可以回答这个问题
当它可以返回任何其他东西时,比如
再也没有意义了。
对象(元组、列表等)通常实现
*注意事项: imho,这不是可以比较的最佳解决方案 任何 对象,然后在运行时引发异常。Haskell使用typeclasses更好地解决了这个问题。
比较不可编译的类型将在编译时失败。 |
![]() |
3
0
您不必使用<和>运算符。求解器基础服务模型类有更大和更少的方法,您应该能够使用这些方法。 |
![]() |
Thomas · 使类型别名在F中不可互换# 3 年前 |
![]() |
sdgfsdh · 我该怎么说。使用异步转换函数进行收集? 7 年前 |
![]() |
Soldalma · 我可以实例化包含顶级副作用值的类吗? 7 年前 |
![]() |
matekus · F#-包含数字的字符串的自然排序 7 年前 |
![]() |
matekus · F#类型匹配-无法创建映射或匹配记录 7 年前 |
![]() |
Rob Lyndon · 未找到F#ProvidedTypes文件 7 年前 |
![]() |
red-swan · 如何将intro ML.Net演示翻译为F#? 7 年前 |
![]() |
jkone27 · F#-在编译时从字符串生成简单的空类型 7 年前 |