دانستنی‌ها

آشنایی با Groovy برای برنامه‌نویسان جاوا

این مطلب را جناب آقای امید نژادعباسی برای جاواکاپ ارسال کردند.

مقدمه

Groovy یک زبان سازگار با سینتکس جاوا است که برای ماشین مجازی جاوا توسعه داده شده است. نوع داده در این زبان هم استاتیک و هم داینامیک است. Groovy برخی ویژگی‌ها را نیز از زبان‌های Python و Ruby به ارث‌ برده.

Groovy همچنین یک زبان اسکریپت‌نویسی با سینتکس قدرتمند و آسان (نسبت به اسکالا) به حساب می آید. از قابلیت‌های مهم آن تبدیل شدن به DSL (Domain Specific Language)  و برنامه نویسی متا است. از Groovy برای نوشتن اسکریپت‌های بیلد در ابزار Gradle نیز استفاده می شود.

Groovy در سال ۲۰۰۷ معرفی شد. بین رتبه‌بندی‌های معتبر زبان‌ها، بهترین رتبه اش، رتبه یازدهم در سایت TIOBE در سال ۲۰۱۹ بود.

 

در این مقاله به طور مختصر به معرفی ویژگی های Groovy می پردازیم.

۱ – سادگی

Groovy روی کتابخانه استاندارد جاوا ساخته شده و کدهای بسیار زیادی به آن اضافه کرده است. این کدها برنامه‌نویسی را بسیار ساده‌تر می‌کنند.

۱٫۱ – خواندن فایل

به عنوان مثال برای ساده‌تر کردن برنامه‌نویسی در Groovy، خواندن یک فایل به طور خط‌به‌خط در Groovy به سادگی کد زیر است:

۱٫۲ – تعریف کردن ArrayList و Map 

همان طور که گفتیم نوع داده در Groovy می‌تواند داینامیک هم باشد. می توانید از کلمه کلیدی def برای تعریف متغیر استفاده کنید:

حالا به راحتی می توان روی عناصر این داده ها عملیات انجام داد:

کتاب خانه استاندارد Groovy پر است از این توابع که کد نویسی را خیلی کوتاه‌تر میکنند.

۲ – درون‌یابی در رشته‌ها (String Interpolation)

در Groovy کاراکتر $ برای جانگهدارها استفاده می شود. اگر قصد فراخوانی متدی را داشته باشید باید از براکت هم استفاده کنید:

یک امکان جالب دیگر Lazy Evaluation است:

عبارت ${ -> number} یک Closure است که با هر بار استفاده ار رشته str فراخوانی می شود. در کد بالا وقتی مقدار number تغییر می کند مقدار str هم تغییر می کند.

۳- تبدیل نوع (Casting)

تبدیل نوع در Groovy خیلی پیشرفته‌تر از جاوا انجام می شود. کلمه کلیدی as برای تبدیل نوع‌ها استفاده می‌شود. همچنین می‌توانید متد asType() را در کلاس خود پیاده سازی کنید تا بتوانید انواعی را که هیچ رابطهٔ سلسله مراتبی ندارند را به هم تبدیل کنید:

در کد بالا یک رشته را مستقیما به Employee تبدیل کردیم که در جاوا امکان پذیر نیست.

۴-  کلمه کلیدی assert

assert  در Groovy کاربردی همانند جاوا دارد ولی بسیار قدرتمندتر است و اطلاعات بیشتری در اختیار ما قرار می‌دهد.

و خروجی:

 

۵– الگوریتم‌های Hash

اگر تا حالا سعی کرده باشید با جاوا از الگوریتم‌های هش استفاده کنید حتما می‌دانید این کار اصلا سرراست و راحت نیست مگر اینکه از کتابخانه‌های خارجی استفاده کنید.

ولی Groovy با متدهایی که به کلاس String اضافه کرده این کار بسیار آسان کرده است:

 

۶- عملگرها

Groovy تقریبا تمام عملگرهای زبان های دیگر را پشتیبانی می‌کند ولی علاوه بر آن‌ها عملگرهای دیگری نیز دارد:

۶٫۱-  عملگر Safe Navigation

از این عملگر برای اطمینان از null نبودن متغیر استفاده میشود:

اگر شی person خالی باشد NullPointerException پرتاب نمی‌شود، در عوض شی user  خالی خواهد‌ بود.

۶٫۲- عملگر Spread

این عملگر (.*) برای انجام عملی خاص روی همه اعضای ظرفی از اشیا به کار می‌رود. برای مثال کد زیر را ببینید:

people*.name  یعنی فیلد name را از تمامی اشیا Person در این لیست بگیر و آنها را در یک لیست بگذار. جالب است توجه کنید که اگر می خواستیم این کار را با کد جاوا بنویسیم چقدر طولانی تر می شد.

۶٫۳- عملگرهای کار با regex

Groovy کار با regex ها را بسیار آسان کرده است و سه عملگر برای این کار دارد:

~ : وقتی این عملگر در مقابل رشته ای قرار می گیرد از آن یک شی java.util.regex.Pattern می سازد:

توجه داشته باشید که بین علامت مساوی و ~ یک فاصله بگذارید وگرنه به عنوان عملگر بعدی شناخته می شود

=~  : از این عملگر برای ساختن Matcher برای یک رشته از روی یک Pattern استفاده می‌شود:

==~ : این عملگر اگر رشتهٔ مورد نظر با الگوی سمت راست عملگر همخوانی داشته‌باشد، مقدار true برمیگرداند:

 

۷- کلاس‌ها و برنامه‌نویسی متا

برنامه نویسی متا به جادوی زمان کامپایل مشهور است. با این امکان شما می توانید به کلاس مورد نظر ویژگی‌های جدیدی اضافه کنید. برای مثال در کد زیر به کلاس String متدی اضافه می کنیم تمام کاراکتر های فاصله را حذف کند و مقدار جدید برگرداند:

البته بحث متا کلاس ها بسیار مفصل است و ما اینجا آن را باز نمی‌کنیم. اگر می‌خواهید در این مورد بیشتر بدانید به این لینک مراجعه کنید.

جمع‌بندی

معمولا وقتی زبان برنامه نویسی جدید به میدان می‌آید باعث پایین آمدن محبوبیت دیگر زبان‌ها می شود. دقیقا همان کاری که Kotlin با Groovy  کرد. انتخاب Kotlin توسط گوگل به عنوان زبان اصلی برای توسعه برنامه های اندروید  باعث اصلی این اتفاق بود ولی با این حال Groovy هنوز پر استفاده و محبوب است. شاید مهم‌ترین دلیلش این باشد که سینتکس Groovy خیلی به جاوا نزدیک است و همچنین شما برای استفاده از ابزار Gradle باید Groovy بلد باشید.

 

منبع: تجربیات شخصی نویسنده (اقای امید نژادعباسی) و این مطلب.

[تعداد: 7   میانگین: 4.3/5]
برچسب ها
نمایش بیشتر

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا