我有一个class Operator[T: TypeTag : ClassTag]
及其方法,我想在参数化类型T
上使用Scala的模式匹配。我知道模式匹配是如何工作的,所以在Scala的repl中尝试了以下内容并得到了错误。
scala> def matchTest() = T match {
| case x: String => "abcd"
| case _ => null
| }
<console>:11: error: not found: value T
def matchTest() = T match {
^
答案 0 :(得分:5)
T
是一种类型,而不是一种价值。您只能匹配值。
您可以获得implicitly[ClassTag[T]]
或implicitly[TypeTag[T]]
这些值,并对其进行匹配。