如何迭代scala地图?
我有斯卡拉地图:
attrs: Map[String , String]
当我尝试遍历地图像;
attrs.foreach { key, value => }
以上不起作用。 在每一次迭代中,我都必须知道什么是关键,什么是价值。 用scala语法糖遍历scala映射的正确方法是什么?
foreach
方法接收Tuple2[String, String]
作为参数,而不是2个参数。 所以你可以像使用元组一样使用它:
attrs.foreach {keyVal => println(keyVal._1 + "=" + keyVal._2)}
或者你可以进行模式匹配:
attrs.foreach {case(key, value) => ...}
三个选项:
attrs.foreach( kv => ... ) // kv._1 is the key, kv._2 is the value attrs.foreach{ case (k,v) => ... } // k is the key, v is the value for ((k,v) <- attrs) { ... } // k is the key, v is the value
诀窍是迭代给你的键值对,你不能分裂成一个键和值标识符的名称,而无需使用case
或。