Как повторить карту scala?
у меня есть карта scala:
attrs: Map[String , String]
когда я пытаюсь перебирать карту, как;
attrs.foreach { key, value => }
выше не работает. В каждой итерации я должен знать, что такое ключ и что такое значение. Что такое правильный способ, чтобы выполнить итерации по карте, используя скала скала синтаксический сахар?
2 ответа:
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
.