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 выполняет итерации через подмножество и ищет максимальное значение.
То же самое во второй строке (ожидайте, что она ищет минимальное значение).