Я новичок в kotlin, только что узнал о функциях lamda пару дней назад.
Итак, я понимаю:
Допустим, у меня есть функция, которая принимает функцию lamda в качестве параметра:
class XX
{
fun addTowNumbers(a:Int , b:Int , action: (Int,Int) -> Int)
{
val result = action(a,b)
println(result)
}
}
и назовите его так:
fun main(args: Array<String>)
{
val x = XX();
val myLamda: (Int, Int) -> Int = {x,y -> x+y}
x.addTowNumbers(2,5, myLamda)
}
Но сегодня мы увидели новый путь, который ниже.
Функция лямда:
val sum: (Int, Int) -> Int = { x, y -> x + y }
Функция высокого уровня, где в качестве параметра используется функция lamda:
fun applyOp(x: Int, y: Int, op: (Int, Int) -> Int): Int = op(x, y)
И она называется так:
applyOp(2, 3, sum)
Итак, теперь моя путаница связана с функцией высокого уровня. Как в параметре
есть 2 двоеточия: op: (Int, Int) -> Int): Int = op (x, y)
также, почемуесть знак равенства?
Что делает общий параметр lamda?