//Ordering是Ordering[T]隐式值
class Pair_Implicits[T: Ordering](val first: T, val second: T) {
def bigger(implicit ordered: Ordering[T]) = {
if (ordered.compare(first, second) > 0) first else second
}
}
//也可以通过implicitly来实现
class Pair_Implicity[T: Ordering](val first: T, val second: T) {
def bigger = if (implicitly[Ordering[T]].compare(first, second) > 0) first else second
}
class Pair_Implicitly_Odereded[T: Ordering](val first: T, val second: T) {
def bigger = {
import Ordered._//隐式将Ordering转换为Ordered
if (first > second) first else second
}
}
object Context_Bounds_Internals {
def main(args: Array[String]): Unit = {
println(new Pair_Implicits(7, 9).bigger)
println(new Pair_Implicity(7, 9).bigger)
println(new Pair_Implicitly_Odereded(7, 9).bigger)
}
}scala进阶20-隐式转换至Ordered与Ordering
最新推荐文章于 2025-07-17 13:43:17 发布
本文介绍了Scala中使用隐式值进行类型比较的方法,包括三种不同的实现方式:通过隐式参数、implicitly关键字以及Ordered特质的转换。每种方法都通过具体的类定义和比较函数进行了展示。
210

被折叠的 条评论
为什么被折叠?



