سلام دوستان! امروز میخوایم درباره یه مفهوم خیلی مهم و کاربردی توی برنامه نویسی صحبت کنیم: Lambda Expression (عبارت لامبدا). نگران نباشید، اسمش یکم ترسناکه ولی در اصل خیلی سادهتر از اونیه که فکر میکنید. فرض کنید میخواید یه کار کوچیک رو سریع و بدون دردسر انجام بدید. Lambda Expression دقیقا همینه!
فرض کنید میخواهید یه لیست از اعداد داشته باشید و فقط اونهایی که زوج هستند رو انتخاب کنید. بدون Lambda Expression، باید یه تابع جداگونه تعریف کنید و بعد از اون استفاده کنید. اما با Lambda Expression، میتونید این کار رو خیلی سریعتر و تمیزتر انجام بدید.
به زبان ساده، Lambda Expression یه روش مختصر و مفید برای تعریف توابع کوچیک و ساده است. این توابع معمولا یه بار مصرف هستند، یعنی فقط یه جا توی کدتون ازشون استفاده میکنید و دیگه نیازی به تعریف یه اسم جداگانه براشون ندارید.
چند تا دلیل خیلی خوب برای استفاده از Lambda Expression وجود داره:
شکل کلی یه Lambda Expression معمولا به این شکله:
(پارامترها) => { دستورات }
حالا این یعنی چی؟
(پارامترها)
: اینجا شما پارامترهای ورودی تابع رو مشخص میکنید. ممکنه یه پارامتر داشته باشید، چند تا پارامتر داشته باشید، یا اصلا پارامتری نداشته باشید.=>
: این یه علامت خاصه که بهش میگن "لامبدا اپراتور". این علامت مشخص میکنه که شما دارید یه Lambda Expression تعریف میکنید.{ دستورات }
: اینجا شما دستوراتی که میخواید تابع انجام بده رو مینویسید. ممکنه یه دستور داشته باشید، یا چند تا دستور. اگه فقط یه دستور داشته باشید، میتونید آکولادها رو هم حذف کنید.فرض کنید یه لیست از اعداد دارید:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
حالا میخواید فقط اعداد زوج رو انتخاب کنید. با استفاده از Lambda Expression، این کار خیلی ساده میشه:
List<Integer> evenNumbers = numbers.stream() .filter(n -> n % 2 == 0) .collect(Collectors.toList());
توی این مثال:
numbers.stream()
: لیست اعداد رو به یه جریان تبدیل میکنه..filter(n -> n % 2 == 0)
: اینجا از Lambda Expression استفاده کردیم. n
یه پارامتره که هر کدوم از اعداد لیست رو نشون میده. n % 2 == 0
یعنی "باقی مانده تقسیم n
بر 2 برابر با 0 باشه" (یعنی عدد زوج باشه)..collect(Collectors.toList())
: اعداد زوج رو دوباره به یه لیست تبدیل میکنه.ویژگی | تابع معمولی | Lambda Expression |
---|---|---|
اسم | دارد | ندارد (معمولا) |
تعریف | جداگانه | درون خط کد |
کاربرد | چند بار مصرف | معمولا یک بار مصرف |
طول | معمولا طولانیتر | معمولا کوتاهتر |
Lambda Expression فقط برای فیلتر کردن لیستها استفاده نمیشه. میشه ازش توی خیلی از جاهای دیگه هم استفاده کرد. مثلا:
مرتب سازی یه لیست بر اساس یه معیار خاص:
List<String> names = Arrays.asList("Ali", "Reza", "Mohammad", "Hasan"); names.sort((s1, s2) -> s1.compareTo(s2)); // مرتب سازی بر اساس حروف الفبا
انجام یه عملیات روی همه اعضای یه لیست:
numbers.forEach(n -> System.out.println(n * 2)); // چاپ دو برابر هر عدد
حتی میتونی اون رو به یه متغیر اختصاص بدی و بعدا صداش کنی. این کار تو مواقعی که داری یه پردازش سنگین انجام میدی میتونه خیلی مفید باشه. به عنوان مثال:
Function<Integer, Integer> square = x -> x * x; int result = square.apply(5); // result now is 25
اینجا ما یه Lambda Expression تعریف کردیم که یه عدد رو به توان دو میرسونه و نتیجه رو برمیگردونه. بعد، اونو به متغیر `square` اختصاص دادیم و هر وقت بخوایم میتونیم ازش استفاده کنیم. دیدی چه آسان؟
Lambda Expression یه ابزار قدرتمند و کاربردی توی برنامه نویسی مدرنه. یادگیریش خیلی آسونه و میتونه کدتون رو خیلی تمیزتر و خواناتر کنه. پس حتما سعی کنید باهاش آشنا بشید و توی پروژههاتون ازش استفاده کنید. امیدوارم این توضیح براتون مفید بوده باشه. برای یادگیری بیشتر، تمرین یادتون نره!
به امید دیدار در آموزش های بعتدی!
Lambda Expression, عبارت لامبدا, تابع, برنامه نویسی, کد, آموزش برنامه نویسی, فیلتر, لیست, stream
امتیاز شما به این مطلب
امتیاز: 5 از 5 (مجموع 1 رای)
اولین نفری باشید که در مورد این مقاله نظر می دهید!
techfeed.ir© 2024 All rights reserved