我已经知道了:
<:
是 Scala 语法类型约束- while
<:<
是利用 Scala 隐式来达到类型约束的类型
例如:
object Test {
// the function foo and bar can have the same effect
def foo[A](i:A)(implicit ev : A <:< java.io.Serializable) = i
foo(1) // compile error
foo("hi")
def bar[A <: java.io.Serializable](i:A) = i
bar(1) // compile error
bar("hi")
}
但我想知道我们什么时候需要使用<:
and <:<
?
如果我们已经拥有<:
,为什么我们需要<:<
?
谢谢!