آموزش عبارات لامبدا در جاوا (Lambda Expression)،کاملا جامع
جلسات دوره
مهدی عباسی
مهدی عباسی هستم، مسلط به حداقل ۲۰ زبان مطرح برنامه نویسی به صورت پیشرفته، مدیر عامل شرکت آریا نرم افزار و بنیانگذار آکادمی درسمن، مسلط به تدریس دروس تخصصی کاردانی و کارشناسی کامپیوتر، پایگاه داده ها، برنامه نویسی پیشرفته، مبانی برنامه نویسی، مباحث ویژه طراحی وب و .... مشاهده رزومه
آموزش کامل عبارتهای لامبدا در زبان جاوا (Lambda Expression)
عبارتهای لامبدا خیلی مشابه متدها هستند و در این جلسه با نحوه تعریف و استفاده آنها آشنا میشویم.
زمانی که درون اینترفیس یک متد وجود داشته باشد، میتوانیم بدنه متد آن را به صورت لامبدا هر جای برنامه تعریف کنیم.
به عنوان مثال یک اینترفیس داریم که یک تابع به نام print دارد.
public interface MyInterface {
void print(int num);
}
حال درون کلاس Main میخواهیم یک نمونه از این اینترفیس بسازیم.
public static void main(String[] args) {
MyInterface myInterface1=new MyInterface() {
@Override
public void print(int num) {
System.out.println(num);
}
};
myInterface1.print(300);
}
خروجی
300
در بالا یک نمونه از اینترفیس MyInterface ساختیم و با استفاده از کلمه new توابع آن را override کردیم. حال میخواهیم با استفاده از لامبدا بدنه تابع را بنویسم.
public static void main(String[] args) {
MyInterface myInterface2=num-> System.out.println(num);
myInterface2.print(400);
}
خروجی
400
برای نوشتن لامبدا از ()-> استفاده میکنیم که به دو بخش تقسیم میشود سمت چپ کاراکتر -> ورودی تابع را مشخص میکنیم و سمت راست کاراکتر -> کاری که تابع انجام میدهد را می نویسیم.
MyInterface myInterface2=(int num)-> System.out.println(num);
در بالا ورودی تابع int num است و بدنه تابع System.out.println(num) است. در لامبدا نیازی به تعیین نوع داده ورودی نیست و میتوانیم به جای نوشتن (int num) از (num) استفاده کنیم. همچنین اگر ورودی تابع برابر یک مقدار بود میتوانیم پرانتز را پاک کنیم.
نکته: اینترفیس هایی که قرار است به صورت لامبدا نوشته شوند نباید بیشتر از یک متد داشته باشند.
یک متد درون interface قرار دارد که 2 ورودی دریافت میکند و خروجی آن int است.
public interface MyInterface {
void sum(int n,int m);
}
میخواهیم درون کلاس Main با استفاده از لامبدا بدنه متد sum را پیاده سازی کنیم.
MyInterface myInterface3=(x,y)-> x+y;
System.out.println(myInterface3.sum(30,40));
خروجی
70
در عبارت تک خطی لامبدا نیاز به نوشتن return نیست.
اگر عملیات هایی که در بدنه لامبدا نوشته میشود بیشتر از یک خط باشد باید آنها را درون {} قرار دهید.
MyInterface myInterface5=(x,y)->{
int s=x+y;
s*=100;
return s;
};
System.out.println(myInterface5.sum(2,5));
خروجی
700
همانطور که مشاهده کردید عبارات لامبدا میتواند کدها را کوتاهتر و خواناتر کند.
توضیحات ذکر شده چکیده ای میباشد از آنچه که میخواهید بیاموزید، برای فهم بهتر مطالب این جلسه، میتوانید این درس را خریداری کنید و از نکات ارزشمند آن بهره مند شوید.
شما درسمنی های عزیز هر گونه سوال یا ابهامی از این جلسه داشتید میتوانید به انجمن برنامه نویسان جاوا مراجعه کنید و سوالات خود را بپرسید.
ممنون از همراهی شما
نظر شما در تصمیم دیگران اثرگذار است.
لطفا برای همراهان درسمن و بهتر شدن دوره نظر خود را بنویسید.