Бывает, что в довольно сложной функции нужно какую-то часть кода повторить несколько раз, но цикл для этого не подходит, слишком много различий между разами. Тогда логично вынести эту часть в отдельную функцию. Но эта часть - "подфункция", которая нужна только в этой функции и нигде больше. Чтобы не размазывать код и не засорять область видимости, можно использовать лямбду.
В котлине ситуация немного другая. Там это еще и краткая запись листенеров для кнопок и др.
Есть метод класса (т. е. функция), в котором ты вешаешь листенеры. И логично, что листенеры будут "подфункциями". (Еще логичнее было бы выносить их в отдельные методы класса, как это делается в C# и WinForms, например, - но на Android так не принято, в отличие от WinForms там придется делать это вручную, трудоемко.)
Java
Зачем нужны лямбда функции? И в частности в Котлине
попросите админов открыть раздел по котлину? котлин понимает джаву (так же как груви понимает джаву), но это не значит что джава обязана отдуваться за всех этих хвостопадов.... сами с нуля нифига не придумали... тупо взяли готовое, переписали интерфейс и сидят "умные"... пальцы веером... сопли пузырями...
лямба -- ой, так кратко и понятно всё написано... иди пройдись по длинному выражению дебаггером... посреди выражения остановку не сделаешь...
лямба -- ой, так кратко и понятно всё написано... иди пройдись по длинному выражению дебаггером... посреди выражения остановку не сделаешь...
Лямбда выражения чаще всего используются для краткого описания анонимного класса, который имплементируется от интерфейса, в котором есть всего один метод.
interface In {
void some();
}
public void method(In in) {
}
Мы можем сделать так:
method(new In() {
@Override
public void some() {
}
}) ;
Но зачем делать так, если можно так:
da(() -> {
});
Также лямбда в java недавно стали использоваться в конструкции switch-case
Вместо привычного:
switch(a) {
case 1: {
break;
}
}
Теперь:
switch(a) {
case 1 -> {
И без break
}
}
interface In {
void some();
}
public void method(In in) {
}
Мы можем сделать так:
method(new In() {
@Override
public void some() {
}
}) ;
Но зачем делать так, если можно так:
da(() -> {
});
Также лямбда в java недавно стали использоваться в конструкции switch-case
Вместо привычного:
switch(a) {
case 1: {
break;
}
}
Теперь:
switch(a) {
case 1 -> {
И без break
}
}
Двумя словами: сокращают код.
Похожие вопросы
- Как работает рекурсивная функция?
- Что значит в данной строке "?" (какую функцию выполняет, зачем он там), за ранее спасибо!
- Где можно найти краткое обучение по использованию JFrame? Чтобы просто приводился порядок поставления и функций.
- Java зачем нужен модификатор final
- как думаете в России нужна ли такая профессия как программист?
- C# Помогите написать генератор паролей на C# ,что бы он мог генерировать нужное кол-во паролей.
- Что такое полиморфизм и для чего он нужен? Java
- Какие предметы на программиста нужны? Хочу стать программистом. Какие предметы учить надо и какой минимальный бал?
- зачем нужны игры
- Всем привет. Помогите плз. Мне нужна помощь тех кто действительно хорошо знает Java т. к мне нужно выбрать один из курсов