Groovy замыкание - что происходит в этом коде?

Как начинающий разработчик Groovy, я пытаюсь понять следующие строки кода Groovy, который я унаследовал:

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

skillsDist объект является ссылкой на объект типа Java Set<CalculationResult>, каждый CalculationResult имеет int поле mValue,

Часть, с которой я борюсь, это замыкания после максимума и минимума. Очевидно, я предполагаю, что он находит минимальное и максимальное значения из набора, но мне нужно изменить это, и мне неудобно не понимать это.

Спасибо!

1 ответ

Решение

findAll итератор над set, Это создает новый set и добавляет все элементы со значением, большим или равным 0. Операция max выполняет итерации через подмножество и ищет максимальное значение.

То же самое во второй строке (ожидайте, что она ищет минимальное значение).

Другие вопросы по тегам