+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 پاسخ 316 بازدید
+2 امتیاز
1 پاسخ 679 بازدید
+1 امتیاز
1 پاسخ 314 بازدید
+2 امتیاز
1 پاسخ 435 بازدید
+1 امتیاز
1 پاسخ 510 بازدید
0 امتیاز
0 پاسخ 261 بازدید
...