Ho il seguente caso d'uso che si verifica spesso nel mio codice:Come convertire un elenco [A] in un elenco [B] utilizzando una conversione implicita
- Una collezione [A]
- un implicito conversione a a B
e voglio ottenere un insieme di B. posso usare implicitamente come la seguente:
case class Items(underlying:List[B])
import B._
def apply(a:List[A]):Items = {
val listOfB= a.map {implicitly[A=>B]}
Items(listOfB)
}
Qual è il modo più elegante per farlo in Scala, magari con l'aiuto di Scalaz di fare lo stesso?
Modifica: l'obiettivo della mia domanda è trovare un modo idiomatico, un approccio comune tra biblioteche e sviluppatori. In tal senso, sviluppare la mia soluzione pimp-my-library è qualcosa che non mi piace, perché le altre persone che scrivono il mio codice non conoscerebbero l'esistenza di questa conversione e non la userebbero, e riscriveranno le loro. Io preferisco usare un approccio di libreria per queste funzioni comuni ed è per questo che mi chiedo se in Scalaz esiste una tale caratteristica.
È in qualche modo parte di alcune librerie standard? Odio reinventare la ruota – Edmondo1984
@ Edmondo1984: non lo so, l'ho scritto da zero solo ora, ma potrei anche reinventare la ruota. BTW ha letto di nuovo la mia risposta, ho generato la soluzione in modo da avere solo una conversione implicita 'convList' per tutti i tipi convertibili. –