(Scala)使用yield {}创建地图

时间:2018-07-03 09:51:04

标签: scala dictionary for-loop

我正在阅读有关Maps的文章,因此我尝试创建这样的地图:

val myMap = for(i <- 0 to 10) yield {
  i.toString->"Number"
}

显然,它不起作用。使用for循环初始化地图的正确方法是什么?

谢谢! ^^

2 个答案:

答案 0 :(得分:3)

在具有元组的某些集合上使用toMap会返回scala.collection.immutable.Map,其中第一个值是键,第二个值是值本身。 对于上面的示例,您可以执行以下操作(并采用scala样式):

(1 to 10).map( _.toString -> "Number").toMap

答案 1 :(得分:1)

您只需要对结果调用toMap,就像这样

val myMap = (for(i <- 0 to 10) yield {
  i.toString -> "Number"
}).toMap