Sto cercando di scrivere un metodo generico fill
, e che segue è quello che io sono venuto in mente finora:Scrivi metodo generico 'riempimento'
scala> import collection.generic.{GenericTraversableTemplate => GTT}
import collection.generic.{GenericTraversableTemplate=>GTT}
scala> import collection.generic.{TraversableFactory => TF}
import collection.generic.{TraversableFactory=>TF}
scala> def fill[A, CC[X] <: Traversable[X] with GTT[X, CC]]
| (n: Int)(elem: => A)(tf: TF[CC]) = tf.fill(n)(elem)
fill: [A, CC[X] <: Traversable[X] with scala.collection.generic.GenericTraversab
leTemplate[X,CC]](n: Int)(elem: => A)(tf: scala.collection.generic.TraversableFa
ctory[CC])CC[A]
scala> fill(3)('d')(List)
res42: List[Char] = List(d, d, d)
Questo funziona con tutte le collezioni attraversabili eccetto array. Come faccio a far funzionare questo codice con gli array?
Ho anche venire con [questo] (https://gist.github.com/1194858) versione alternativa che funziona con le matrici, ma non mi piace per due motivi: 1. Richiede per dare più annotazioni di tipo di quanto vorrei. 2. Mi fa scrivere personalmente l'intera implementazione invece di riutilizzare i metodi esistenti nelle raccolte. – missingfaktor