Как передать функцию в качестве параметра на kotlin?

Пользователь

от fidel , в категории: Другие , 2 года назад

Как передать функцию в качестве параметра на kotlin?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от montana_hand , год назад

@fidel 

Пользователь

от delphine_bartoletti , год назад

@fidel 

В Kotlin можно передавать функции в качестве параметров, используя так называемые "функции высшего порядка" (higher-order functions).


Функция высшего порядка - это функция, которая принимает одну или несколько функций в качестве параметров или возвращает функцию в качестве результата.


Для передачи функции в качестве параметра, нужно указать тип функции в качестве аргумента. Например, если вы хотите передать функцию, которая принимает два Int и возвращает Int, то тип функции будет выглядеть как (Int, Int) -> Int.


Пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
fun performOperation(x: Int, y: Int, operation: (Int, Int) -> Int): Int {
    return operation(x, y)
}

fun main() {
    val sum = performOperation(10, 5) { x, y -> x + y }
    val product = performOperation(10, 5) { x, y -> x * y }
    println("Sum: $sum")
    println("Product: $product")
}


В приведенном выше примере функция performOperation принимает два Int и функцию (Int, Int) -> Int в качестве параметров. В зависимости от переданной функции, функция performOperation выполняет разные операции. В main мы передаем функции сложения и умножения в качестве параметров и выводим результаты.