+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 پاسخ 497 بازدید
+2 امتیاز
1 پاسخ 987 بازدید
+1 امتیاز
1 پاسخ 450 بازدید
+2 امتیاز
1 پاسخ 596 بازدید
+1 امتیاز
1 پاسخ 640 بازدید
0 امتیاز
0 پاسخ 351 بازدید
...