+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 پاسخ 451 بازدید
+2 امتیاز
1 پاسخ 955 بازدید
+1 امتیاز
1 پاسخ 409 بازدید
+2 امتیاز
1 پاسخ 556 بازدید
+1 امتیاز
1 پاسخ 607 بازدید
0 امتیاز
0 پاسخ 299 بازدید
...