Для чего нужен конечный лямбда-синтаксис (Kotlin)? - PullRequest
0 голосов
/ 02 февраля 2019

Передача лямбды к последнему параметру

В Kotlin существует соглашение, что если последний параметр функции принимает функцию, то передается лямбда-выражениепоскольку соответствующий аргумент может быть помещен вне скобок:

val product = items.fold(1) { acc, e -> acc * e }

Какова цель этого синтаксиса?

1 Ответ

0 голосов
/ 02 февраля 2019

Этот синтаксис дает Kotlin отличные возможности DSL, он делает функции похожими на языковые конструкции.Например:

with(car) {
   startUp()
   goToDestination()
}

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

...