斯卡拉什么是<:<运营商
这里有一些解释
  类型和对象也可以具有符号名称;  特别值得一提的是,对于具有两个类型参数的类型,可以在参数之间写入名称,以便例如Int <:< Any与<:<[Int, Any] 。 
但是,我仍然无法得到它。 我会很感激,如果有人可以提供一个例子的解释。
  这是在对象Predef定义的类: 
abstract class <:<[-From, +To] extends Function1[From, To]
  A <:< B一个实例证明A是B一个子类型。 
  类名是符号的没有特别的后果,它可以被命名为IsSubType[From, To] aka From IsSubType To 。 
  您可以通过Predef.$conforms获得此类的“证据”实例Predef.$conforms : 
implicit def $conforms[A]: <:<[A, A]
  这个用例就是你有A类型A但是你想在子类型B <: A 。  那么你可以简单地问这个隐含的证据: 
trait Foo[A] {
  def x: A
  // def fails: Int = x * x -- not possible, we don't know that A is an Int
  def succeeds(implicit ev: A <:< Int): Int = x * x
}
  从使用地点来看,如果A <: Int ,编译器只允许我们调用succeeds ,否则我们将无法获取ev参数。  由于编译器可以基于类型参数From和To <:<的方差来推断所搜索类型的上限,所以隐式查找是有效的。 
  (当然, Int是最终的类型,所以我们也可以要求平等A =:= Int ,这只是一个简单的例子。) 
