+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 پاسخ 435 بازدید
+2 امتیاز
1 پاسخ 920 بازدید
+1 امتیاز
1 پاسخ 399 بازدید
+2 امتیاز
1 پاسخ 545 بازدید
+1 امتیاز
1 پاسخ 597 بازدید
0 امتیاز
0 پاسخ 292 بازدید
...