2016-03-04 33 views
3

有人可以在Scala中解释这个语法吗?我知道“cd”是Class类型,“_”是通配符,但是“<:”在这里做了什么?谢谢。将类传递给函数的Scala语法

def func(cd: Class[_ <: CompressionCodec]) 

回答

7

它用于上限绑定的泛型。这意味着_必须是CompressionCodec的子类型。与用>:编写的低级绑定仿制药相比,它必须是超级类型。

如果你知道Java,你可以把它们想象为Class<? extends CompressionCodec>,对于较低类型的绑定泛型,Class<? super CompressionCodec>

查看更多! http://docs.scala-lang.org/tutorials/tour/upper-type-bounds.html

+1

非常感谢! – jlp