gpt4 book ai didi

scala - Int 是 Scala 中的有序类型吗?

转载 作者:行者123 更新时间:2023-12-02 09:14:17 26 4
gpt4 key购买 nike

呃,好像不是。代码如下:

  def inBounds[T <: Ordered[T]](lowerBound: T, value: T, upperBound: T): Boolean =
lowerBound <= value && value <= upperBound

在编译时给我一个错误:

Error:(55, 13) inferred type arguments [Int] do not conform to method inBounds's 
type parameter bounds [T <: Ordered[T]]

但是... Int 必须以某种方式“有序”。我是否缺少一些隐式的导入

最佳答案

Int 是一个具有OrderingNumeric。与所有其他原始 JVM 类型一样,它不扩展任何其他内容。这值得一读。

import scala.math.Ordering.Implicits._

def inBounds[T : Ordering](
lowerBound: T,
value: T,
upperBound: T
): Boolean = {
lowerBound <= value && value <= upperBound
}

值得注意的是,大多数时候您将处理 Scala 隐式的排序风格,而不是 Ordered,后者仅因遗留原因而真正存在。(例如 Java 互操作)。

如果您深入研究源代码here您会注意到它实际上扩展了 java.lang.Comparable[T],因此这就是为什么同时存在 OrderingOrdered

关于scala - Int 是 Scala 中的有序类型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48629858/

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