В дополнение к ответу Павнеета, обоснование этого заключается в том, что он позволяет писать то, что выглядит как расширение языка. Например:
repeat (10) {
// Do something
}
Это похоже на новый тип структуры l oop; но на самом деле это просто функция с именем repeat()
, которая принимает два параметра; целое число и лямбда.
Кроме того, если лямбда является параметром only , вы можете полностью опустить парены, например:
repeatForever {
// Do something
}
(repeat()
находится в стандартной библиотеке; repeatForever()
оставлено в качестве упражнения для читателя: -)
Возможность обрабатывать некоторые встроенные вызовы методов, такие как someValue.takeIf{ it > 0 }
, является просто приятным побочным эффектом этого .