زبان برنامه نویسی Groovy چیست
زبان برنامه نویسی Groovy چیست
آیا علاقهمند به کسب اطلاعاتی در رابطه با زبان برنامه نویسی Groovy هستید؟ در صورت تمایل به آشنایی با این زبان سازگار با جاوا میتوانید در ادامهی این مقاله همراه ما باشید تا با مفهوم Groovy چیست آشنا شوید.
اول از همه باید به این موضوع بپردازیم که به طور کلی Groovy چیست همانطور که میدانید گرووی یک زبان برنامه نویسی نسبتاً پرکاربرد شیءگرا و داینامیک است که برای ماشین مجازی جاوا JVM مورد استفاده قرار میگیرد و در هرجایی از جاوا قابل اجرا میباشد.
زبان Groovy برای توسعهدهندگان پلتفرم جاوا میتواند به عنوان یک زبان اسکریپتنویسی در نظر گرفته شده و حتی برای افراد علاقهمند به افزایش انعطافپذیری و افزایش قابلیتهای این زبان مفید باشد.
Groovy به طور یکپارچه با بایتکد جاوا کار کرده و دارای سینتکس مشابه با جاوا میباشد. این زبان بسیاری از ویژگیهای زبانهای Perl ،Python ،Ruby و Smalltalk را به ارث برده است.
کاربردهای زبان برنامه نویسی Groovy چیست
گرووی کاربردهای مختلفی دارد و شامل ویژگیهای متعددی میباشد که در ادامه چند ویژگی و کاربرد مهم از این زبان برنامه نویسی را با هم بررسی میکنیم;
مهمترین کاربردهای Groovy چیست
- ترکیب ماژولهای جاوا
- گسترش برنامههای موجود جاوا
- نوشتن برنامههای جدید در جاوا
- مناسب برای اسکریپتنویسی با سینتکس آسان و قدرتمند
- توسعه داده شده برای ماشین مجازی جاوا
- مناسب برای استفاده از دادههای استاتیک و داینامیک
- تلفیق شده با ویژگی زبان پایتون و Ruby
- دارای قابلیت تبدیل شدن به (DSL (Domain Specific Language و برنامهنویسی متا
- مناسب برای نوشتن اسکریپتهای ساخت (build) در ابزار Gradle
- امکان برقراری ارتباط با برنامههای جاوا و کتابخانههای آن
- امکان یادگیری آسان و بدون دردسر
- بهرهبری از قابلیت Functional Programming
نمونه کد زبان برنامه نویسی Groovy
برای آشنایی با نحوه کدنویسی در زبان برنامه نویسی Groovy به نمونه کد زیر توجه فرمایید؛
class Chistio {
static void main(String[] arg) {
int x = 5;
int y = 10;
def _something = 'salam';
print_ln(x);
print_ln(y);
print_ln(_something);
}
}
ویژگی های برنامه نویسی Groovy چیست
مفهوم برنامهنویسی شیگرا در Groovy: از آنجایی که تمامی عملگرها در گرووی به صورت تابع فراخوانی و پیادهسازی میشوند و در این زبان همه اجزا یک شیء در نظر گرفته میشوند، با اجرای کد ۱ + ۱ شاهد اجرای زیر خواهید بود؛
۱٫plus(1)
این یعنی Groovy قابلیت رونویسی عملگرها را دارد. در کد دستوری زیر میتوانید مثالی از رونویسی عملگر plus را مشاهده نمایید؛
class Score {
int value;
public Score plus (Score other) {
return new Score(value: value + other.value)
}
}
Score myScore = new Score(value: 88)
Score yourScore = new Score(value: 89)
Score totalScore = myScore + yourScore
assert totalScore == 177
برنامهنویسی تابعی
به سبک خاصی از برنامه نویسی است که تاکید بر استفاده از توابع برای حل مسائل محاسباتی داشته و از طرفی تاکید دارد که از متغیرهای حالت و گامهای رویهای استفاده نکنید، برنامه نویسی تابعی گفته میشود.
توابع گرووی میتوانند برای تعریف توابعی به کار روند که هیچ گام رویهای ندارند. برای نمونه میتوانید به پیاده سازی تابع فاکتوریل در زبان Groovy طبق کد دستوری زیر توجه نمایید؛
def fac(n) { n == 0 ? 1 : n * fac(n - 1) }
بستارها
بستارها در واقع تکههای کوچکی از کد هستند که در Groovy تعریف شده و در نکتهای دیگر اجرا میشوند. هر بستار امکان دسترسی به متغیرهای حوزهای که بستار در آن تعریف شده است را دارد و به آنها متغیرهای آزاد گفته میشود. برای مثال به نمونه کد زیر توجه نمایید؛
def adder(n) {
return { num -> num + n }
}
def add5 = adder(5)
println add5(7) // prints 12
ویژگی پویا بودن در Groovy چیست
پویایی این امکان را به ما میدهد که در زمان اجرا به تغییر ساختار کلاسهای تعریف شده بپردازیم. حتی میتوان هنگام اجرا یک کلاس، متغیر یا تابع جدیدی به کلاس اضافه کرد.
نوعگذاری قوی و نوعگذاری شل
در برنامه نویسی Groovy برای تعریف یک متغیر نیازی نیست که حتماً نوع آن را مشخص کنید. برای مثال هنگامی که کد:
def someObject = "some value";
به بایتکد جاوا ترجمه میشود، در واقع کد زیر در جاوا معادل سازی شده است:
GroovyObject someObject = "some value";
از طرفی گرووی امکان پشتیبانی از نوعگذاری را نیز دارد. به عنوان نمونه ، کد زیر نیز در گرووی مجاز است:
String someObject = "some value";
یکپارچهسازی مستقیم با جاوا
کلاسهای جاوا در گرووی قابل استفاده هستند و از آنجایی که کلاسهای گرووی به بایتکد جاوا ترجمه میشوند میتوان از کلاسهای Groovy در جاوا نیز استفاده کرد. در ادامه نمونه کدی را برایتان به اشتراک میگذاریم.
در این نمونه کدهای زیر، کلاس در جاوا و کلاس در گرووی تعریف شده است و هر دو از یکدیگر استفاده مینمایند؛
کلاس تعریف شده در Groovy:
class AClassInGroovy{
def printMessage() {
println "Hello from Groovy"
}
}
new AClassInJava().printMessage()
new AClassInGroovy().printMessage()
کلاس تعریف شده در Java
public class AClassInJava {
public static void main(String[] args) {
new AClassInJava().printMessage();
new AClassInGroovy().printMessage();
}
public void printMessage() {
System.out.println("Hello from Java");
}
}
رشتهها در برنامه نویسی Groovy
از دو کلاس java.lang.String و groovy.lang.GString برای ساخت رشتهها در Groovy استفاده میشود. در رشتههایی از نوع string نمیتوان به طور مستقیم متغیرها و متدها را فراخوانی کرد اما رشتههایی با نوع GString که در داخل “” قرار میگیرند، دارای ویژگی فراخوانی مستقیم متدها و متغیرها با علامت $ هستند.
هر جا که لازم باشد رشتههای GString به صورت خودکار به String تبدیل میشوند. نکته: رشتههایی که داخل “” قرار میگیرند GString، و رشتههایی که بین دو ‘ قرار میگیرند از نوع String محسوب میشوند.
مثال:
class FirstClass {
def a=8
def mGString="hello $a" //GString
def mString='hello $a' //String
FirstClass() {
println mGString
println mString
}
static void main(def args){
new FirstClass()
}
}
خروجی دستورات فوق:
hello 8
hello $a
به عنوان مهمترین ویژگیهای زبان برنامه نویسی Groovy میتوان به سادگی کدنویسی، خواندن فایلها و همچنین تعریف کردن ArrayList و Map به شکل ساده اشاره کرد. درونیابی در رشتهها نیز از دیگر ویژگیهای جالب گرووی است.
تبدیل نوع در گرووی بسیار پیشرفتهتر از جاوا بوده و امکان استفاده راحت از الگوریتم، در این زبان امکانپذیر میباشد. همچنین گرووی از عملگرهای زبانهای مختلف پشتیبانی میکند.
برای شروع کار با این زبان برنامه نویسی ابتدا باید به طور کامل درک کنید که Groovy چیست و کاربردها و ویژگیهای آن کدام هستند. با توجه به اطلاعات فوق احتمالاً با این زبان آشنایی پیدا کرده باشید، حال میتوانید تصمیم بگیرید که یادگیری Groovy تا چه حد برایتان سودمند است!