Tôi muốn xác định một hàm trả về một mảng và tôi có một thẻ TypeTag. Tôi có thể tạo ClassTag được yêu cầu không?Trong Scala 2.10, làm thế nào để bạn tạo một ClassTag cho một TypeTag
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)
Hoặc là nó cần thiết để cung cấp bằng chứng tiềm ẩn của 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]
Tôi đã có thể nghĩ nó đơn giản để tạo ra một ClassTag từ một TypeTag, nhưng tôi thấy không có cách nào rõ ràng.
Bản sao có thể có của [Cách nhận TypeTag biểu mẫu TypeTag hoặc cả hai cùng một lúc?] (Http://stackoverflow.com/questions/18729321/how-to-get-classtag-form-typetag-or-both- cùng một lúc) – Suma