K, failOnDuplicate: (T) -> Exception): Map<K, T> {
return groupingBy(keySelector)
.aggregate { key, prevValue: T?, value: T, _ ->
val r = when (prevValue) {
null -> value
value -> prevValue
else -> throw failOnDuplicate(value)
}
r
}
}
Если заинлайнить r, ругается, что ждём Map<K, T>, а на деле Map<K, T?>
Обсуждают сегодня