vir*_*yes 4 scala tuples list map type-conversion
我有一个查询结果List[(Int,String,Double)],我需要转换为Map[String,String](用于在html选择列表中显示)
我的黑客解决方案是:
val prices = (dao.getPricing flatMap {
case(id, label, fee) =>
Map(id.toString -> (label+" $"+fee))
}).toMap
Run Code Online (Sandbox Code Playgroud)
必须有更好的方法来实现同样的目标......
这个怎么样?
val prices: Map[String, String] =
dao.getPricing.map {
case (id, label, fee) => (id.toString -> (label + " $" + fee))
}(collection.breakOut)
Run Code Online (Sandbox Code Playgroud)
该方法collection.breakOut提供了一个CanBuildFrom实例,该实例确保即使您从a映射List,Map也可以重建a,这要归功于类型注释,并避免创建中间集合.
更简洁一点:
val prices =
dao.getPricing.map { case (id, label, fee) => ( id.toString, label+" $"+fee)} toMap
Run Code Online (Sandbox Code Playgroud)
更短的选择:
val prices =
dao.getPricing.map { p => ( p._1.toString, p._2+" $"+p._3)} toMap
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2206 次 |
| 最近记录: |