lambda در جاوا (Lambda Expressions in java)

در این قسمت تیم کدگیت را با آموزش lambda در جاوا همراهی کنید. یکی از قابلیت‌های اضافه شده در نسخه جدید زبان برنامه‌نویسی جاوا، lambda می‌باشد در این آموزش به معرفی این قابلیت پرداخته و در انتهای آموزش چند مثال واقعی را پیاده سازی خواهیم کرد. پیشنهاد می‌کنیم قبل از مطالعه این جلسه، پیش‌نیازهای این آموزش را مطالعه کنید:

  1. Interface در جاوا
  2. متد در جاوا
  3. کلاس تودرتو

lambda در جاوا

یکی از قابلیت‌های جدید نسخه 8 جاوا lambda می‌باشد. با استفاده از lambda میتوان به راحتی از Collectionها استفاده کرد(عملیات‌هایی همچون iterate، فیلتر و سرچ براحتی می‌توان با کمک lambda پیاده سازی کرد). lambda برای پیاده سازی interfaceهایی استفاده می‌شود که یک متد دارند. با کمک این قابلیت دیگر نیازی به تعریف مجدد متد نیست و فقط به پیاده سازی درون متد می‌پردازیم. کد زیر یک نمونه interface بدون استفاده از lambda می‌باشد.

در کد بالا یک interface با یک متد نوشتیم و از کلاس تودرتو برای پیاده سازی متد draw استفاده کردیم. حال همین کار را با به کمک lambda انجام می‌دهیم.

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

(argument-list) -> {body}

  • argument-list: ورودی متد در interface، در صورت نداشتن ورودی فقط () قرار داده می‌شود.
  • -> : نشانه به سمت پیاده سازی متد
  • Body: پیاده سازی متد

حال با دانستن lambda به توضیح کد بالا می‌پردازیم. با استفاده از lambda میخواهیم متد draw در interface را پیاده سازی کنیم. برای این کار ابتدا ورودی متد را در نظر میگیریم و شروع به نوشتن argument-list می‌کنیم. در اینجا ورودی نداریم پس ورودی به صورت () در می‌آید سپس نشانه -> را قرار داده و کد درون متد را می‌نویسیم دقیقا کاری که در بالا انجام دادیم. در ابتدا ممکن است پیچیده به نظر برسد اما با چند مثال ساده می‌توان به راحتی آن را استفاده کرد.

مثال Lambda

با توجه به اینکه ممکن است کمی lambda در جاوا گیج کننده باشد چند مثال را در این قسمت آورده‌ایم.

مثال اول چاپ عناصر یک ArrayList به کمک lambda (توجه کنید نام متغیر arrL است):

مثال دوم جمع دو عدد به کمک lambda:

مثال سوم شروع یک Thread با استفاده از Lambda:

مثال چهارم نوشتن یک Listener برای Button:

همانطور که در کدهای بالا می‌بینید بسیاری از کدهای اضافه که برای نوشتن یک Thread یا ArrayList نوشته می‌شد به کمک lambda حذف شده است. همچنین کد با استفاده lambda خواناتر شده و از پیچیدگی در می‌آید.

سورس کد:

پسورد: www.codegate.ir

دسته : java, آموزش قدم به قدم جاوا, جاوا

دیدگاه بگذارید

نظر شما چیست؟

مطلع کردن شما از
avatar

wpDiscuz