74
我有斯卡拉地圖:如何迭代scala地圖?
attrs: Map[String , String]
當我嘗試遍歷地圖等;
attrs.foreach { key, value => }
以上不起作用。在每次迭代中,我都必須知道什麼是關鍵,什麼是價值。使用scala語法糖遍歷scala映射的正確方法是什麼?
我有斯卡拉地圖:如何迭代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
for
。
看看雷克斯的回答,更好的選擇有 – iwein 2013-04-03 14:04:57