Как лучше создавать функцию?
Как лучше объявлять функцию: через выражение
fun f() {
...
}
или анонимной лямбдой?
val f = {
...
}
И в чем преимущества?
Как лучше объявлять функцию: через выражение
fun f() {
...
}
или анонимной лямбдой?
val f = {
...
}
И в чем преимущества?
Нельзя сказать что "одно лучше другого", то и то является функциями, но есть различия.
UPD1
Если задавать функцию через выражение, то её можно лаконично уместить в одну строчку без явного упоминания Return
(но с явным упоминанием типа):
fun add(a: Int, b: Int): Int = a + b
UPD2
Из того что написано выше, можно, кстати, сделать вывод о том, что лямбду можно передавать как аргумент для другой функции, что даёт гибкости (наверное).
Тем не менее, с анонимными лямбдами возможны следующие конструкции:
fun performOperation(a: Int, b: Int, operation: (Int, Int) -> Int): Int {
return operation(a, b)
}
fun main() {
val result = performOperation(5, 3) { x, y -> x + y }
println(result) // Выводит: 8
}
В функции main()
мы вызываем performOperation
и передаем анонимную лямбду { x, y -> x + y }
в качестве аргумента operation
. Это лямбда-выражение складывает два числа. В результате мы получаем сумму 5 + 3
, равную 8
, которую выводим на консоль.