基本介绍
与 view bounds 一样 context bounds(上下文界定)也是隐式参数的语法糖。
为语法上的方便, 引入了”上下文界定”这个概念
就是设置一个隐式值,到时候会自动匹配
案例:
上下文界定应用实例
要求:使用上下文界定+隐式参数的方式,比较两个Person对象的年龄大小
要求:使用Ordering实现比较
代码:
package Contextbounds
object ContextBounds {
//定义了一个隐式值 类型是:Ordering[Person]
implicit val personComparetor = new Ordering[Person] {
override def compare(p1: Person, p2: Person): Int =
p1.age - p2.age
}
def main(args: Array[String]): Unit = {
val p1 = new Person("mary", 30)
val p2 = new Person("smith", 35)
val compareComm1 = new CompareComm1(p1, p2)
println(compareComm1.geatter)
val compareComm2 = new CompareComm2(p1, p2)
println(compareComm2.geatter)
println("CompareComm3 comparetor: " + personComparetor.hashCode())
val compareComm3