gpt4 book ai didi

scala - 上下文边界和类

转载 作者:行者123 更新时间:2023-12-01 09:51:38 25 4
gpt4 key购买 nike

下面的函数定义有什么问题。

def f[A: Ordered] (a: A, b: A): Boolean = a < b 

我无法解析符号 <.由于 Ordered 是 A 的上下文类,它不应该能够解析 < 吗?我错过了什么?

最佳答案

Ordered 不是类型类,而是普通继承的基本特征。

所以要么你更新到...

def f[A <: Ordered[_]](a: A, b: A): Boolean = a < b

...或者您使用 Ordering 类型类来保持上下文边界:

def f[T : Ordering](a: T, b: T): Boolean = {
val order = implicitly[Ordering[T]]
order.lt(a, b)
}

// Or:
def f[T](a: T, b: T)(implicit order: Ordering[T]): Boolean = order.lt(a, b)

Personally I don't recommend the implicit conversion from import scala.math.Ordering.Implicits._ (auto-magic stuff).

关于scala - 上下文边界和类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36599088/

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