dictionary - groovy map collect
Loop a través del mapa en Groovy? (4)
Al usar el bucle for, el valor de s es un elemento Map.Entry, lo que significa que puede obtener la clave de s.key y el valor de s.value
Tengo una tarea muy simple que estoy tratando de hacer en Groovy pero parece que no puedo hacer que funcione. Solo intento recorrer un objeto de mapa en groovy e imprimir la clave y el valor, pero este código no funciona.
// A simple map
def map = [
iPhone : ''iWebOS'',
Android: ''2.3.3'',
Nokia : ''Symbian'',
Windows: ''WM8''
]
// Print the values
for (s in map) {
println s + ": " + map[s]
}
Estoy tratando de que la salida se vea así:
iPhone: iWebOS
Android: 2.3.3
Nokia: Symbian
Windows: WM8
¿Podría alguien dar más detalles sobre cómo hacer esto?
Alternativamente, puede usar un ciclo for
como se muestra en Groovy Docs :
def map = [''a'':1, ''b'':2, ''c'':3]
for ( e in map ) {
print "key = ${e.key}, value = ${e.value}"
}
/*
Result:
key = a, value = 1
key = b, value = 2
key = c, value = 3
*/
Una de las ventajas de usar un bucle for
en lugar de each
cierre es una depuración más sencilla, ya que no se puede alcanzar un punto de quiebre dentro de each
cierre (cuando se usa Netbeans).
Muy simple con un cierre:
def map = [
''iPhone'':''iWebOS'',
''Android'':''2.3.3'',
''Nokia'':''Symbian'',
''Windows'':''WM8''
]
map.each{ k, v -> println "${k}:${v}" }
Otra opción:
def map = [''a'':1, ''b'':2, ''c'':3]
map.each{
println it.key +" "+ it.value
}