【发布时间】:2013-02-26 17:43:43
【问题描述】:
我想定义一个返回数组的函数,并且我有一个 TypeTag。我可以生成所需的 ClassTag 吗?
scala> import scala.reflect.runtime.universe._
import scala.reflect.runtime.universe._
scala> def fun[X: TypeTag]: Array[X] = Array.ofDim[X](10)
<console>:11: error: No ClassTag available for X
def fun[X: TypeTag]: Array[X] = Array.ofDim[X](10)
或者是否需要提供 ClassTag 的隐含证据:
scala> import reflect.ClassTag
import reflect.ClassTag
scala> def fun[X: ClassTag: TypeTag]: Array[X] = Array.ofDim[X](10)(implicitly[ClassTag[X]])
fun: [X](implicit evidence$1: scala.reflect.ClassTag[X], implicit evidence$2: reflect.runtime.universe.TypeTag[X])Array[X]
我认为从 TypeTag 生成 ClassTag 很简单,但我看不到明显的方法。
【问题讨论】:
标签: scala scala-2.10