Лямбда функции
Вставка
- Опубліковано 11 лис 2020
- Программу данного курса вы можете посмотреть по ссылке - docs.google.com/document/d/1H...
Начиная с Java 1.8 появляются лямбда функции. Лямбда функция - анонимная
функция реализующая функциональный интерфейс. Лямбда функции используются в том
же контексте, что и ссылки на методы. Т.е. могут быть использованы только как
реализация того или иного функционального интерфейса.
Ссылка на конспект этой лекции - drive.google.com/file/d/1FvFc...
тот случай, когда человек не просто разбирается в теме, но и понимает, как донести до тех, кто сталкивается с этим первый раз. на просторах интернета много видео, но очень часто видно, что человек понимает о чем говорит, но ему не важно, поймут ли его смотрящие. спасибо за отличную подачу материала. наконец до меня дошло, и оказывается при правильном объяснении тут ничего сложного!
Один из самых крутых курсов по сложным для понимания в Яве темам
Ты крутой! Огромное спасибо!
Просто потрясающе! Спасибо большое.
Александр, большое спасибо!!! Объяснили сложную реализацию функции очень понятно и лаконично!!!
Вам нужно скорее выкладывать эти курсы на платных площадках, таких как Stepik, Udemy и прочие. За такие качественные уроки люди готовы платить.
Ну или как минимум, не стесняйтесь в описании к роликам указывать номер карты для благодарностей.
Благодарю.
- прекрасно
- пример отличной подачи материала:
- все четко
- структурировано
- последовательно
- блестящая работа
- спасибо
PS: А нЕ тО каК некоТоРые НачНут СкаКать Взад_ впеРреД Все ВраЗбРос НиЧегО не пОняТно
Лайк и комментарий в поддержку канала)
полностью поддерживаю
Только теперь я осознал, почему если в теле лямды выскакивает exeption, то ей нужен свой блок try-cach, и почему внешней обертки нехватает. Раньше я не задумывался, что это полноценный отдельный метод со всеми вытекающими.
Вы отлично доносите материал. Вот бы лекцию о дженериках посмотреть от вас. А то тоже материал не так прост как кажется на первый взгляд)
Спасибо!!!
Добрый день. Есть у вас лекции про обобщение?
А канал не обновляется в плане Java? Если автор читает коменты, может ответит) Про многопоток посмотреть бы. Приятные уроки, подобного не встречал пока.
Добрый день. К сожалению плейлист по Java совершенно не пользуется популярностью, у зрителей. Поэтому его дальнейшее развитие я приостановил.
@@oleksandrtsymbaliuk здравствуйте! Печально что контент, который действительно считаю полезным, не востребован. В отличии от всякого Г. Все равно спасибо вам за труд. Удачи и успехов!))
Очень недурно. Просмотрено с пользой.
Могу только добавить:
1. если абстрактный метод функционального интерфейса имеет только один параметр, то в лямбде можно не брать этот параметр в скобки.
interface F{void abc(int x);}
...
F f = x -> {};
2. можно упомянуть о потенциальной разнице значений полей объекта/класса на момент создания лямбды и на момент вызова лямбды:
class I{
public static void main (String[] args)
{
new A().abc();
}
}
class A{
static int sx = 40;
int oy =125;
final int CONST = 50;
void abc(){
int sx_tmp=sx, oy_tmp=oy;
int x = 10;
final int y = 20;
Function f = n -> {
System.out.println(sx_tmp);
System.out.println(sx);
System.out.println(oy_tmp);
System.out.println(oy);
sx+=10;
oy+=5;
return n+x+y+sx+oy+CONST;
};
sx=50; oy=10;
System.out.println("abc().Function = " + f.apply(10));
}
}
//sx - static x, oy - object y.
@FunctionalInterface
public interface StringModificator {
public String getString(String text);
}
public class Main1 {
public static void main(String[] args){
StringModificator sm = (text) -> {
String result = "";
for (char let : text.toCharArray()){
if (Character.isLetter(let) || let == ''){
result += let;
}
}
return result;
};
}
}
java: empty character literal
А так у меня let == ' ' т.е. символу пробела, а у вас там ничего не стоит просто.
реалізація let == ' ' не працює IntelliJ IDEA Community Edition 2023.1.4
Доброго дня. Мене збентежило ваше запитання. IDEA це середовище розробки, в ній і не повинно нічого працювати. Тому якщо щось не працює, то це пов'язано з версією Java, яку ви використовуєте. Але що б більш повно відповісти на ваше запитання мені потрібен блок коду, який не працює, і повідомлення про помилку.
public class Main1 {
public static void main(String[] args){
StringModificator sm = (text) -> {
String result = "";
for (char let : text.toCharArray()){
if (Character.isLetter(let) || let == '') {
result += let;
}
}
return result;
};
System.out.println(sm.getString("Hello12345 word "));
}
}
java: empty character literal
Так опять тоже самое нужно let == ' ' т.е. нужно пробел поставить между одинарными кавычками.
Так.Дуже дякую.
Сокровище для новичков, которым всетаки непосчастливилось попасть в зыбучую трясину отсталой JAVA!!!
Это вы еще моих лекций по Fortran не видели :)