Есть функция, которая возвращает сумму всех переданных параметров. Как записать эту функцию в переменную с помощью лямбда-выражения?

Есть функция, которая возвращает сумму всех переданных параметров:

fun sum(vararg numbers:Int): Int {
    var result = 0
    for (i in numbers) {
        result += i
    }
    return result
}

Как записать эту функцию с помощью лямбда? Когда я в параметры ввожу vararg, то пишет, что не поддерживается

val sum:(vararg Int) -> Int = 

Ответы (1 шт):

Автор решения: Komdosh

К сожалению такое поведение не предусмотрено, после компиляции vararg превращается в массив. Однако можно некрасиво обойти, например так:

val sumWrapper: (IntArray) -> Int = {arr: IntArray -> sum(*arr)}
→ Ссылка