آخرین بروزرسانی 1 روز قبل

بیان لامبدا (Lambda Expression) چیست؟

Lambda Expression چیست؟ توضیح ساده برای همه

سلام دوستان! امروز می‌خوایم درباره یه مفهوم خیلی مهم و کاربردی توی برنامه نویسی صحبت کنیم: Lambda Expression (عبارت لامبدا). نگران نباشید، اسمش یکم ترسناکه ولی در اصل خیلی ساده‌تر از اونیه که فکر می‌کنید. فرض کنید میخواید یه کار کوچیک رو سریع و بدون دردسر انجام بدید. Lambda Expression دقیقا همینه!

فرض کنید می‌خواهید یه لیست از اعداد داشته باشید و فقط اونهایی که زوج هستند رو انتخاب کنید. بدون 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
اسم دارد ندارد (معمولا)
تعریف جداگانه درون خط کد
کاربرد چند بار مصرف معمولا یک بار مصرف
طول معمولا طولانی‌تر معمولا کوتاه‌تر

مثال های بیشتر

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

Lambda Expression دقیقا چی هست؟
یه روش مختصر برای تعریف توابع کوچیک و بدون نام.
فرقش با یه تابع معمولی چیه؟
Lambda Expression معمولا یه بار مصرفه و اسم نداره، در حالی که تابع معمولی اسم داره و میشه چند بار ازش استفاده کرد.
کجاها میشه از Lambda Expression استفاده کرد؟
توی خیلی از جاها، مثلا فیلتر کردن لیست‌ها، مرتب سازی لیست‌ها، انجام عملیات روی همه اعضای یه لیست، و خیلی جاهای دیگه.
آیا استفاده از Lambda Expression کد رو خواناتر میکنه؟
بله، در خیلی از موارد کد رو کوتاه‌تر و خواناتر میکنه.

به اشتراک گذاشتن این مطلب در شبکه های اجتماعی

امتیاز شما به این مطلب

امتیاز: 5 از 5 (مجموع 1 رای)

اولین نفری باشید که در مورد این مقاله نظر می دهید!

5859- V1
Terms & Conditions | Privacy Policy

techfeed.ir© 2024 All rights reserved