scala - addtoset - mongodb update push to array
Cómo iterar Scala Map? (2)
Tengo un mapa scala:
attrs: Map[String , String]
Cuando trato de iterar sobre un mapa como;
attrs.foreach { key, value => }
lo anterior no funciona. En cada iteración, debo saber cuál es la clave y cuál es el valor. ¿Cuál es la forma correcta de iterar sobre scala map usando scala syntactic sugar?
Tres opciones:
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
El truco es que la iteración le da pares clave-valor, que no puede dividir en una clave y un nombre de identificador de valor sin usar case
o case
.
foreach
método foreach
recibe Tuple2[String, String]
como argumento, no 2 argumentos. Entonces puedes usarlo como tupla:
attrs.foreach {keyVal => println(keyVal._1 + "=" + keyVal._2)}
o puedes hacer coincidir el patrón:
attrs.foreach {case(key, value) => ...}