خانه » آموزش » اندروید » Lambda Expression چیست و چگونه در جاوا استفاده می شود

Lambda Expression چیست و چگونه در جاوا استفاده می شود

لامبدا اکسپرشن امکان مهم و جدیدی است که در جاوا ۸ اضافه شده است که قبلا در C# مطرح شده بود. توسط لامبدا می توانیم توابعی را بصورت بی نام به همراه بدنه آن تعریف کنیم که مزایای گوناگونی از قبیل مختصر کردن کد، کم کردن تعداد فایل های .java پروژه را داراست. همچنین در هنگامی که می خواهیم از تابعی بر اساس شرایط استفاده کنیم و قابل استفاده است و یا مثلا در شرایط خاصی که نیاز به کلاس مشخصی داریم. فرض کنید در Runtime  بر اساس رفتار کاربر قرار است توابع مختلفی ایجاد شود. همچنین می توان برای پاس دادن یک اینترفیس به یک تابع از لامبدا استفاده کرد که در آخرین مثال به آن اشاره می کنم.

لامبدا را به روش های گوناگونی می توان نوشت که در ادامه توضیح خواهم داد ولی روش کلی آن بصورت زیر است:

قسمت اول همانطور که مشخص است پارامترهای ورودی و بخش دوم بدنه می باشد.

برای استفاده از امکانات Lambda Expression در Android Studio باید فایل Gradle را بصورت زیر تغییر دهید:

در کلاس زیر مثال چند توع لامبدا را خواهید دید. لامبدا اکسپرشن با نوع ورودی و بدون نوع ورودی، با بلاکی از کد و غیره.

به مثال های زیر را اجرا کرده و خروجی را ملاحظه نمایید:

همانطور که ملاحظه می کنید اینترفیس هایی داریم که تعریف بدنه تابع های آن را با لامبدا اکسپرشن انجام دادیم. نمونه بدون لامبدااکسپرشن تابع greetiservice3WithoutLambda می باشد. همچنین با استفاده از لامبدا می توانید از روش مرتب سازی بالا نیز استفاده کنید. ( به قسمت sort توجه کنید)  که برخلاف روش های گذشته بسیار ساده تر است. یعنی به جای نوشتن کلاس comparator به صورت مجزا، آن را بصورت لامبدا اکسپرشن در خود ورودی تولید کردیم.

یا اینکه بجای کد زیر :

بنویسم:

همانطور که دیدید به جای new کردن Interface و سپس پاس دادن آن به تابع، بصورت مستقیم با لامبدا پاس دادیم.

 

منابع:

https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html

http://www.tutorialspoint.com/java8/java8_lambda_expressions.htm

http://www.developer.com/java/start-using-java-lambda-expressions.html

 

آموزش برنامه نویسی اندروید

درباره مهدی تاجیک

مهندس نرم افزار و مدیر پروژه. از سال 82 برنامه نویسی رو بصورت جدی شروع کردم و از سال 90 برنامه نویسی اندروید می کنم. علاقه زیادی به یادگرفتن و یاد دادن دارم.

دیدگاهتان را ثبت کنید

آدرس ایمیل شما منتشر نخواهد شدعلامتدارها لازمند *

*

bigtheme