+1 امتیاز
قبل در برنامه نویسی توسط (1.1هزار امتیاز)
lambda expression در جاوا 8 چیست و چه کاربردی دارد؟

1 پاسخ

+1 امتیاز
قبل توسط (1.1هزار امتیاز)

lambda expression یا function literal در جاوا 8 اضافه شده است و با استفاده از آن می توان یک تابع (function) با پارامتر های ورودی و بدنه تابع تعریف کرد: 

(String s1, String s2) -> s1.length() - s2.length();

lambda expression ها را مارو از شر استفاده از Anonymous Inner Class ها خلاص می کنند. برای استفاده از متد sort کلاس Collections باید از Comparator استفاده می کردیم ولی حالا می توان با lambda expression بصورت زیر رفتار کرد:

List <String> list = Arrays.asList("looooong", "short", "tiny" );
Collections.sort(list, (String s1, String s2) -> s1.length() - s2.length());

یکی دیگر از کاربرد های lambda expression، استفاده از آنها بعنوان closure است. یک closure به تابع اجازه می دهد به متغییر های خارج از scope خود دسترسی داشته باشد:

String outer = "Java 8"
(String s1) -> s1.length() - outer.length()

سوالات مشابه

+1 امتیاز
1 پاسخ 490 بازدید
+2 امتیاز
1 پاسخ 985 بازدید
+1 امتیاز
1 پاسخ 445 بازدید
+2 امتیاز
1 پاسخ 588 بازدید
+1 امتیاز
1 پاسخ 634 بازدید
0 امتیاز
0 پاسخ 347 بازدید
...