Groovy دروس البرنامج النصي للمبتدئين
ما هو Groovy البرنامج النصي؟
Apache Groovy هو كائن المنحى و Java لغة برمجة متوافقة مع بناء الجملة مصممة لـ Java منصة. تحتوي هذه اللغة الديناميكية على العديد من الميزات المشابهة Pythonوروبي وSmalltalk وPero. Groovy يتم تجميع التعليمات البرمجية المصدر في Java Bytecode بحيث يمكن تشغيله على أي نظام أساسي تم تثبيت JRE عليه. Groovy كما يؤدي أيضًا الكثير من المهام خلف الكواليس مما يجعله أكثر مرونة وديناميكية.
Groovy يمكن استخدام اللغة كلغة برمجة نصية لـ Java منصة. إنها تقريبًا مثل النسخة الفائقة من Java التي تقدم Javaقدرات المؤسسة. كما يوفر العديد من ميزات الإنتاجية مثل دعم DSL والإغلاق والكتابة الديناميكية. على عكس بعض اللغات الأخرى، تم تصميمه ليكون رفيقًا وليس بديلاً له Java.
لماذا Groovy?
إليك الأسباب الرئيسية التي تدفعك إلى الاستخدام والتعلم Groovy-
- Groovy هي لغة رشيقة وديناميكية
- التكامل بسلاسة مع كل ما هو موجود Java الكائنات والمكتبات
- يشعر بالسهولة والطبيعية Java المطورين
- كود أكثر إيجازًا ومعنى مقارنةً بـ Java
- يمكنك استخدامه كثيرًا أو قليلاً كما تريد Java التطبيقات
Groovy تاريخنا
- 2003: تم تطويره بواسطة بوب ماكWhirثالثا وجيمس ستراشان
- 2004: تم تشغيلها في JSR 241 ولكن تم التخلي عنها
- 2005: أعاده جيريمي راينر وغيوم لافورج
- 2007: Groovy إصدار 1.0
- 2012: Groovy إصدار 2
- 2014: Groovy الإصدار 2.3 (الدعم الرسمي المقدم لـ JDK 8)
- 2015: Groovy أصبح مشروعًا في برنامج Apache Foundation
ميزات Groovy
- القائمة والخريطة والنطاق والتعبيرات الحرفية العادية
- تعدد الأساليب والبرمجة الوصفية
- Groovy يتم تخزين الفئات والبرامج النصية عادةً في ملفات .groovy
- تحتوي البرامج النصية Groovy البيانات دون أي إعلان فئة.
- يمكن أن تحتوي البرامج النصية أيضًا على تعريفات أسلوب خارج تعريفات الفئة.
- يمكن تجميعها ودمجها بالكامل مع التقليدية Java التطبيق.
- دعم مستوى اللغة للخرائط والقوائم والتعبيرات العادية
- يدعم عمليات الإغلاق والكتابة الديناميكية وبروتوكول كائن التعريف
- دعم الكتابة الثابتة والديناميكية وتحميل المشغل الزائد
- الإعلان الحرفي للقوائم (المصفوفات) والخرائط والنطاقات والتعبيرات العادية
كيفية تثبيت Groovy
الخطوة 1) تأكد لديك Java تثبيت.
الخطوة 2) انتقل إلى البرنامج المساعد في التأليف http://groovy-lang.org/download.html وانقر فوق المثبت.
ملحوظة: يمكنك أيضًا التثبيت Groovy باستخدام ملف مضغوط أو كملف Eclipse IDE. في هذا Groovy البرنامج التعليمي، وسوف نتمسك به Windows فني تركيب/تثبيت
الخطوة 3) قم بتشغيل برنامج التثبيت الذي تم تنزيله. حدد اللغة ثم انقر فوق موافق
الخطوة 4) يطلق. في شاشة الترحيب، انقر فوق التالي
الخطوة 5) أتفق مع شروط الترخيص
الخطوة 6) حدد المكونات التي تريد تثبيتها وانقر فوق "التالي".
الخطوة 7) حدد دليل التثبيت وانقر فوق "التالي".
الخطوة 8) اختر مجلد قائمة ابدأ وانقر فوق "التالي".
الخطوة 9) بمجرد الانتهاء من التثبيت، اترك المسارات الافتراضية وانقر فوق التالي
الخطوة 10) انقر فوق التالي
الخطوة 11) في قائمة ابدأ ابحث عن Groovy كنسولات
Groovy مرحبا العالم مثال
لنفترض أننا نريد طباعة سلسلة بسيطة "Hello World" فيها Java. الكود لتحقيق السلسلة Groovy مرحبا بالعالم سيكون
public class Demo {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
الكود أعلاه صالح في كليهما Java و Groovy as Groovy هي مجموعة شاملة من Java. لكن الميزة مع Groovy هو أنه يمكننا التخلص من إنشاء الفصل وإنشاء الطريقة العامة وما إلى ذلك وتحقيق نفس الناتج باستخدام رمز سطر واحد كما يلي:
println "Hello World."
ليست هناك حاجة للفواصل المنقوطة
ليست هناك حاجة للأقواس
تم تحويل System.out.println إلى println
Groovy المتغيرات
In Java، الربط الثابت إلزامي. وهذا يعني أنه يجب الإعلان عن نوع المتغير مسبقًا.
public class Demo {
public static void main(String[] args) {
int x = 104;
System.out.println(x);
//x = "Guru99";
}
}
في المثال أعلاه من هذا Groovy البرنامج التعليمي، يتم الإعلان عن نوع المتغير (عدد صحيح) مسبقًا باستخدام الكلمة الأساسية "int". إذا كنت ستعلن عن رقم الفاصلة العائمة، فاستخدم الكلمة الأساسية float.
إذا حاولت تعيين قيمة سلسلة إلى int (إلغاء تعليق السطر رقم 5)، فستحصل على الخطأ التالي
Demo.java:5: error: incompatible types: String cannot be converted to int x = "Guru99";
فى المقابل، Groovy يدعم الكتابة الديناميكية. يتم تعريف المتغيرات باستخدام الكلمة الأساسية "def"، ولا يلزم الإعلان عن نوع المتغير مسبقًا. يقوم المترجم بتحديد نوع المتغير في وقت التشغيل ويمكنك حتى تحديد نوع المتغير.
فكر في المثال الرائع التالي،
def x = 104 println x.getClass() x = "Guru99" println x.getClass()
الإخراج:
class java.lang.Integer class java.lang.String
In Groovy، يمكنك إنشاء سلاسل متعددة الأسطر. فقط تأكد من تضمين السلسلة بين علامات اقتباس ثلاثية.
def x = """Groovy at Guru99""" println x
الإخراج:
Groovy at Guru99
ملاحظات: لا يزال بإمكانك أنواعًا متغيرة مثل byte، وshort، وint، وlong، وما إلى ذلك Groovy. لكن لا يمكنك تغيير نوع المتغير ديناميكيًا كما قمت بتعريفه صراحةً.
ضع في اعتبارك الكود التالي:
int x = 104 println x x = "Guru99"
يعطي الخطأ التالي
104
Caught: org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'Guru99' with class 'java.lang.String' to class 'int'
org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'Guru99' with class 'java.lang.String' to class 'int'
at jdoodle.run(jdoodle.groovy:3)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
Command exited with non-zero status 1
Groovy-Operaالاختصاصات
المشغل هو رمز يخبر المترجم بإجراء بعض العمليات الرياضية أو المنطقية.
Groovy يحتوي على الأنواع الخمسة التالية من المشغلين:
- العمليات الحسابية: الجمع (+)، الطرح (-)، الضرب (*)، القسمة (/)
- مشغلات العلاقات: يساوي (==)، لا يساوي (!=)، Less من (<) Less من أو يساوي (<=)، أكبر من (>)، أكبر من أو يساوي (>=)
- المعاملات المنطقية: And (&&)، Or(||)، Not(!)
- مشغلات البت: And(&)، Or(|)، (^)، Xor أو مشغل Exclusive-or
- عوامل التعيين: عامل النفي (~)
Groovy- الحلقات
In Java، يمكنك تحديد حلقة على النحو التالي
public class Demo {
public static void main(String[] args) {
for (int x = 0; x <= 5; x++) {
System.out.println(x);
}
}
}
الإخراج:
0 1 2 3 4
يمكنك تحقيق نفس الناتج في Groovy باستخدام ما يصل إلى الكلمات الرئيسية
0.upto(4) {println "$it"}
تحصل على نفس الإخراج على النحو الوارد أعلاه. $ إنه إغلاق يعطي قيمة الحلقة الحالية.
ضع في اعتبارك الكود التالي
2.upto(4) {println "$it"}
أنه يعطي الإخراج
2 3 4
يمكنك أيضًا استخدام الكلمة الأساسية "مرات" للحصول على نفس النتيجة
5.times{println "$it"}
ضع في اعتبارك أنك تريد طباعة 0,2,4،XNUMX،XNUMX باستخدام للحلقة في Java
public class Demo {
public static void main(String[] args) {
for (int x = 0; x <= 5; x=x+2) {
System.out.println(x);
}
}
}
الإخراج:
0 2 4
يمكنك استخدام طريقة الخطوة لنفسه
0.step(7,2){println "$it"}
Groovy- صناعة القرار
| البيانات | خداع |
|---|---|
| إذا البيان | كما في Java، يتم تنفيذ عبارة if إذا كان الشرط صحيحا. |
| إذا / بيان آخر | في عبارة if/else في البداية يتم تقييم الشرط في عبارة if. إذا كان الشرط صحيحا ثم تنفيذ العبارات بعد ذلك. يتوقف قبل الشرط else ويخرج من الحلقة. ومع ذلك، إذا كان الشرط غير صحيح، فسيتم تنفيذ العبارات الموجودة في كتلة عبارة else. ثم يخرج من الحلقة. |
| بيان إذا متداخل | يتم استخدامه عندما تكون هناك حاجة إلى عبارات if متعددة. |
| بيان التبديل | قد تصبح عبارة if-else المتداخلة غير قابلة للقراءة عندما يكون لديك شروط متعددة. لجعل الكود أكثر قابلية للقراءة، يتم استخدام عبارة switch. |
| بيان التبديل المتداخل | In Groovy من الممكن أيضًا استخدام عبارات التبديل المتداخلة. |
Groovy قائمة
تسمح لك بنية القائمة بتخزين مجموعة من عناصر البيانات. في أ Groovy تحتوي القائمة في لغة البرمجة على سلسلة من مراجع الكائنات. كما أنها تظهر موضعًا في التسلسل. يتم تقديم القائمة الحرفية كسلسلة من الكائنات مفصولة بفواصل ومحاطة بأقواس مربعة.
مثال على قائمة Grovy:
قائمة السلاسل- ["Angular"، "Nodejs،]
قائمة مراجع الكائنات – ['Groovy'، 2,4،2.6 XNUMX]
قائمة القيم الصحيحة – [16، 17، 18، 19]
قائمة فارغة- [ ]
فيما يلي قائمة بالطرق المتاحة في Groovy:
| طرق | الوصف |
|---|---|
| إضافة () | يسمح لك بإلحاق القيمة الجديدة بنهاية هذه القائمة. |
| يتضمن() | يُرجع صحيحًا إذا كانت هذه القائمة تحتوي على قيمة معينة. |
| احصل على() | إرجاع العنصر في موضع محدد |
| فارغ() | إرجاع القيمة الحقيقية إذا كانت القائمة لا تحتوي على عناصر |
| ناقص() | يتيح لك هذا الأمر إنشاء قائمة جديدة مكونة من العناصر الأصلية باستثناء العناصر المحددة في المجموعة. |
| زائد() | يتيح لك إنشاء قائمة جديدة مكونة من العناصر الأصلية معاً والمذكورة في المجموعة. |
| pop () | إزالة العنصر الأخير من القائمة |
| إزالة() | يزيل العنصر في الموضع المحدد |
| عكس () | قم بإنشاء قائمة جديدة تعكس عناصر القائمة الأصلية |
| بحجم() | إرجاع عدد العناصر في هذه القائمة |
| فرز() | إرجاع نسخة مرتبة |
النظر في ما يلي Groovy مثال البرنامج النصي
def y = ["Guru99", "is", "أفضل", "for", "Groovy"]
println y
y.add("Learning")
println(y.contains("is"))
println(y.get(2))
println(y.pop())
الإخراج:
[Guru99, is, أفضل, for, Groovy] true أفضل Learning
Groovy برنامج Maps
خريطة Groovy عبارة عن مجموعة من أزواج القيمة الرئيسية
أحد أمثلة Groovy خرائط:
- [درس تعليمي: 'Java، درس تعليمي: 'Groovy] - مجموعة من أزواج القيمة الرئيسية التي تحتوي على البرنامج التعليمي كمفتاح والقيم الخاصة بها
- [ : ] تمثل خريطة فارغة
فيما يلي قائمة بطرق الخرائط المتاحة في Groovy.
| طرق | الوصف |
|---|---|
| يحتوي علىمفتاح () | تأكد من أن الخريطة تحتوي على هذا المفتاح أم لا؟ |
| احصل على() | يبحث هذا الأمر عن المفتاح في هذه الخريطة ويعيد القيمة المقابلة. إذا لم تجد أي إدخال في هذه الخريطة، فستعود فارغة. |
| مجموعة المفاتيح () | يسمح بالعثور على مجموعة من المفاتيح في هذه الخريطة |
| وضع() | يربط القيمة المحددة بالمفتاح المحدد في هذه الخريطة. إذا كانت الخريطة تحتوي في وقت سابق على تعيين لهذا المفتاح. ثم سيتم استبدال القيمة القديمة بالقيمة المحددة. |
| بحجم() | إرجاع عدد تعيينات القيمة الرئيسية. |
| القيم () | يقوم هذا الأمر بإرجاع عرض مجموعة من القيم. |
Groovy على سبيل المثال:
def y = [fName:'Jen', lName:'Cruise', sex:'F']
print y.get("fName")
الناتج
Jen
Groovy- الإغلاقات
الإغلاق الرائع هو جزء من التعليمات البرمجية ملفوف ككائن. إنها بمثابة طريقة أو وظيفة.
مثال على الإغلاق البسيط
def myClosure = {
println "My First Closure"
}
myClosure()
الإخراج:
My First Closure
يمكن للإغلاق قبول المعلمات. قائمة المعرفات مفصولة بفواصل
سهم (->) يشير إلى نهاية قائمة المعلمات.
def myClosure = {
a,b,c->
y = a+b+c
println y
}
myClosure(1,2,3)
الإخراج:
6
يمكن أن يؤدي الإغلاق إلى إرجاع قيمة.
def myClosure = {
a,b,c->
return (a+b+c)
}
println(myClosure(1,2,3))
الإخراج:
6
هناك العديد من عمليات الإغلاق المضمنة مثل "It"، و"identity"، وما إلى ذلك. يمكن أن تأخذ عمليات الإغلاق عمليات إغلاق أخرى كمعلمات.
Groovy مباراة. Java
| Groovy | Java |
|---|---|
| In Groovyمحدد الوصول الافتراضي عام. وهذا يعني أن الطريقة التي لا تحتوي على أي معدّل وصول محدد تكون عامة ويمكن الوصول إليها خارج حدود الفئة والحزمة. | In Java، معدّل الوصول الافتراضي هو حزمة، على سبيل المثال، إذا لم تحدد معدّل الوصول للحقول أو الأساليب أو الفئة، يصبح خاصًا بالحزمة، |
| يتم إنشاء الحروف والمحددات تلقائيًا لأعضاء الفصل. | Java، تحتاج إلى تحديد طريقة الحروف والمحددات للحقول |
| Groovy يسمح باستبدال المتغيرات باستخدام علامات الاقتباس المزدوجة مع السلاسل. | Java لا يدعم استبدال المتغير. |
| كتابة المعلومات اختيارية. | كتابة المعلومات إلزامية في Java. |
| Groovy ليس من الضروري أن تنتهي بفاصلة منقوطة. | In Java، تنتهي كل عبارة بفاصلة منقوطة. |
| Groovy هي تلقائيًا فئة تغليف تسمى Script لكل برنامج | In Java، أنت بحاجة إلى الطريقة الرئيسية لجعل الفصل قابلاً للتنفيذ. |
أساطير حول Groovy
| أسطورة | واقع |
|---|---|
| يمكننا استخدام Groovy فقط من أجل البرمجة النصية. | يمكن استخدامه في البرمجة النصية. ومع ذلك، يمكنك القيام بالعديد من المهام الأخرى بخلاف ذلك. |
| Groovy هو كل شيء عن عمليات الإغلاق. "إنه مجرد لغة البرمجة الوظيفية". | Groovy يعتمد على لغات البرمجة الوظيفية مثل Lisp أو Closure. |
| Groovy يعد خيارًا مثاليًا إذا كنت تريد القيام بـ TDD | هذا البيان صحيح. ومع ذلك، فهو بالتأكيد ليس السبب الوحيد لاستخدامه Groovy. |
| يمكنك استخدام Groovy فقط إذا كنت تريد استخدام Grails. | Grails هو إطار عمل قوي لتطوير الويب.
لكن Groovy يقدم أكثر من ذلك. |
سلبيات استخدام Groovy
- جي في إم و Groovy وقت بدء البرنامج النصي بطيء مما يحد من البرمجة النصية على مستوى نظام التشغيل
- Groovy غير مقبول تمامًا في المجتمعات الأخرى.
- أنها ليست مريحة للاستخدام Groovy دون استخدام IDE
- Groovy يمكن أن يكون أبطأ مما أدى إلى زيادة وقت التطوير
- Groovy قد تحتاج إلى الكثير من الذاكرة
- معرفة عن Java أمر حتمي.
Groovy الأدوات
سنناقش 3 أدوات مهمة في هذا Groovy البرنامج التعليمي للبرنامج النصي
1. رائع: ينفذ التعليمات البرمجية بشكل تفاعلي.
2.groovyConsole: واجهة المستخدم الرسومية لتنفيذ التعليمات البرمجية التفاعلية
3. رائع: ينفذ البرامج النصية الرائعة. يمكنك استخدامه مثل بيرل, Python، الخ.
Groovysh
- قذيفة سطر الأوامر
- يساعدك على التنفيذ Groovy رمز بشكل تفاعلي
- يسمح بإدخال البيانات أو البرامج النصية بأكملها
Groovy يرجى العلم بأن يوجد سن محدد للمشاركة بهذه البطولات. الرجاء قراءة القواعد أدناه.
- واجهة Swing التي تعمل كحد أدنى Groovy محرر التطوير.
- يسمح لك بالتفاعل Groovy الكود
- يساعدك على التحميل والتشغيل Groovy ملفات البرنامج النصي
Groovy
وهو المعالج الذي ينفذ Groovy البرامج والنصوص. ش
ويمكن استخدامه لاختبار بسيط Groovy التعبيرات.
ملخص
- Groovy هي لغة برمجة كائنية التوجه تستخدم في Java المنصة
- Groovy يوفر البرمجة النصية تكاملاً سلسًا مع جميع الأنظمة الموجودة Java الكائنات والمكتبات
- بوب ماكWhirقام تير وجيمس ستراشان بتطوير لعبة رائع في عام 2003
- تعد القائمة والخريطة والنطاق والتعبيرات الحرفية العادية من الميزات المهمة لـ Groovy
- أربعة أنواع من المشغلين مدعومة من قبل Groovy 1. علائقية 2. منطقية 3. بتية 4. تعيين
- Groovy تنفيذ عملية اتخاذ القرار باستخدام عبارات if، if/else، Nested if، Switch، Netsted Switch
- تسمح لك بنية القائمة بتخزين مجموعة من عناصر البيانات
- خريطة Groovy عبارة عن مجموعة من أزواج القيمة الرئيسية
- In Groovy، يتم إنشاء الحروف والمحددات تلقائيًا لأعضاء الفصل
- In Java، يمكنك استخدام طريقة تقديم الحروف والمحددات للحقول
- أكبر أسطورة حول Groovy هو أنه يمكن استخدامه فقط للبرمجة النصية وهو غير صحيح
- بعض الاحيان Groovy يمكن أن يكون أبطأ مما أدى إلى زيادة وقت التطوير
- ثلاث Groovy الأدوات هي: groovysh الذي ينفذ التعليمات البرمجية، وgroovy Console الذي يمثل واجهة مستخدم رسومية لتنفيذ التعليمات البرمجية التفاعلية وgroovy الذي ينفذ البرامج النصية













