Cierre maravilloso: ¿qué está sucediendo en este código?

Como desarrollador groovy principiante, estoy tratando de entender las siguientes líneas de código groovy que he heredado:

maxCount = skillsDist.findAll {it.mValue.value >= 0 }.max { it.mValue.value }.mValue.value
minCount = skillsDist.findAll { it.mValue.value >= 0  }.min { it.mValue.value }.mValue.value

La skillsDist objeto es una referencia a un objeto Java de tipo Set<CalculationResult>. Cada CalculationResult tiene un int campo mValue.

La parte con la que estoy luchando son los cierres después del máximo y el mínimo. Obviamente, supongo que encuentra los valores mínimo y máximo fuera del conjunto, pero necesito modificar esto y me siento incómodo al no entenderlo.

¡Gracias!

preguntado el 22 de mayo de 12 a las 17:05

1 Respuestas

La findAll iterador sobre el set. Crea una nueva set y agrega todos los elementos con un valor mayor o igual a 0. La operación max itera a través del subconjunto y busca el valor máximo.

Lo mismo en la segunda línea (espere que busque el valor mínimo).

contestado el 22 de mayo de 12 a las 18:05

¡Estupendo! ¡Gracias! Ahora veo que mi problema era no entender que la operación máxima estaba iterando. - Almiar

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.