list - us1 - www mailchimp com login español
Scala: Lista (2)
Tengo un resultado de consulta de List[(Int,String,Double)]
que necesito convertir a un Map[String,String]
(para mostrar en una lista de selección html)
Mi solución pirateada es:
val prices = (dao.getPricing flatMap {
case(id, label, fee) =>
Map(id.toString -> (label+" $"+fee))
}).toMap
debe haber una mejor manera de lograr lo mismo ...
¿Qué tal esto?
val prices: Map[String, String] =
dao.getPricing.map {
case (id, label, fee) => (id.toString -> (label + " $" + fee))
}(collection.breakOut)
El método collection.breakOut
proporciona una instancia de CanBuildFrom
que garantiza que, incluso si está mapeando desde una List
, se reconstruye un Map
, gracias a la anotación de tipo, y evita la creación de una colección intermediaria.
Un poco más conciso:
val prices =
dao.getPricing.map { case (id, label, fee) => ( id.toString, label+" $"+fee)} toMap
alternativa más corta:
val prices =
dao.getPricing.map { p => ( p._1.toString, p._2+" $"+p._3)} toMap