Jestem względnie nowy w Scala i próbuję zdefiniować metodę obiektu ogólnego. Jednakże, kiedy odwołuję się do sparametryzowanego typu w metodzie otrzymuję "Brak ClassTag dostępny dla T". Oto przykład, który ilustruje problem.Metoda ogólna Scala - brak ClassTag dostępny dla T
scala> def foo[T](count: Int, value: T): Array[T] = Array.fill[T](count)(value)
<console>:7: error: No ClassTag available for T
def foo[T](count: Int, value: T): Array[T] = Array.fill[T](count)(value)
^
Z góry dziękujemy za pomoc w zrozumieniu, co jest nie tak i jak sprawić, aby ten wymyślony przykład działał.
Fascynujące. Dzięki "import scala.reflect.ClassTag" to działa. Dzięki. – Chuck
Ludzie mogą znaleźć to pouczające - http://docs.scala-lang.org/overviews/reflection/typetags-manifests.html - ponieważ ClassManifests znikają. – Chuck
Jeśli dokonamy porównania dwóch wartości typu T w treści funkcji, potrzebujemy parametru 'implicit' orderer w uzupełnieniu do adnotacji' ClassTag'. – AlvaPan