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