gpt4 book ai didi

scala - 为什么 Int 不从 Ordered[Int] 继承/扩展

转载 作者:行者123 更新时间:2023-12-04 14:14:41 24 4
gpt4 key购买 nike

我有一个关于字体设计的问题。为什么 Int 不扩展 Ordered 特性。本质上不是 Int 排序的吗?

相反,scala 库提供了将 Int 转换为 Ordered[Int] 的隐式“orderer”方法。这里有哪些设计选择?

摘自《Scala 编程》一书中的示例

def maxListImpParm[T <% Ordered[T]](elements:List[T]):T= ...


maxListImpParm(List(1,5,10,3)) // works because of implicit methods

最佳答案

因为 Int(以及从 AnyVal 继承的其他一些类)是短暂的——在运行时它通常由原始值表示,根本没有类(因此也没有继承)的概念。当然,也有异常(exception),例如将项目放入集合时对完整引用类实例的 Int 装箱,但 typeclass 提供了一种通用解决方案。此外,类型类是 more flexible than inheritance .

关于scala - 为什么 Int 不从 Ordered[Int] 继承/扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16001010/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com