update array addtoset scala

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) => ...}