我有一个关于字体设计的问题。为什么 Int 不扩展 Ordered 特征。 Int 不是天生有序的吗?
相反,scala 库提供了隐式“orderer”方法,将 Int 转换为 Ordered[Int]。这里做出了哪些设计选择?
示例取自《Scala 编程》一书
def maxListImpParm[T <% Ordered[T]](elements:List[T]):T= ...
maxListImpParm(List(1,5,10,3)) // works because of implicit methods
因为 Int (以及从 AnyVal 继承的其他一些类)是短暂的——在运行时它通常由原始值表示,而原始值根本没有类(以及继承)的概念。当然,也有例外,例如当您将项目放入集合中时,对完整的引用类实例进行 Int 装箱,但 typeclass 提供了一种通用解决方案。此外,类型类是比继承更灵活 https://stackoverflow.com/a/4513556/298389.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)