/**
* 多重界定
*/
//T是A或B的子类
//T <: A with B
//A或B是T的子类
//T >: A with B
//T是A的上界,B的下界
//T >: A <: B
//T必须同时满足存在A[T]和B[T]这样的隐式值
//T: A: B
//T必须同时满足能隐式转换成A和B
//T <% A <% B
class M_A[T]
class M_B[T]
object Multiple_Bounds {
def main(args: Array[String]): Unit = {
implicit val a = new M_A[Int]
implicit val b = new M_B[Int]
def foo[T: M_A : M_B](i: T) = println("OK")
foo(2)
}
}
scala进阶6-多重界定
最新推荐文章于 2021-03-12 18:06:10 发布