logo

حلقة تقييم القراءة والطباعة (REPL) في جافا

ال حلقة تقييم القراءة والطباعة أو ردل هي واجهة شل. تقوم هذه الواجهة بقراءة وتقييم كل سطر من المدخلات ثم طباعة النتيجة. ال حلقة تقييم القراءة والطباعة يساعدنا على التفاعل مع وقت تشغيل التطبيق الخاص بنا الموجود في حالة معينة. تتم قراءة الأوامر وتقييمها بواسطة ردل وطباعة النتيجة. بعد طباعة النتيجة، يعود REPL إلى البداية لقراءة وتقييم وطباعة مدخلاتنا التالية.

حلقة تقييم القراءة والطباعة (REPL) في جافا

باستخدام REPL، يمكننا بسهولة كتابة واختبار كود Java الخاص بنا دون تجميعه ويمكننا رؤية الإخراج مباشرة على وحدة التحكم.

جافا ليس لديها REPL بالفعل؟

بالتأكيد، يجب أن يكون REPL بلغة ثابتة مثل جافا . ولكن، ليست كل اللغات تحتوي على REPL، وجافا واحدة منها. لقد طلب مطورو Java ذلك أكثر من أي وقت مضى. كان لدى Java شيء مثل REPL لفترة من الوقت مثل Java Beanshell. لكن المشروع لم يكن REPL كامل المواصفات مع لغات أخرى. ولهذا السبب، تم إصدار Java 9 في عام 2016، والذي يوفر بيئة REPL كاملة الوظائف.

لماذا يعد REPL مفيدًا جدًا؟

باستخدام REPL، لا نحتاج إلى تجميع أو اختبار كود Java الخاص بنا باستخدام أمر javac. بعد استخدام REPL،

  1. لا حاجة لمحرر لكتابة برنامج جافا.
  2. لا حاجة لحفظ برنامج جافا.
  3. لا حاجة لتجميع برنامج جافا.
  4. لا داعي لإجراء التحرير في حالة ظهور أي خطأ في وقت الترجمة أو وقت التشغيل.
  5. لا حاجة لتكرار العملية.
حلقة تقييم القراءة والطباعة (REPL) في جافا

يمكننا تقييم الأساليب والفئات والبيانات دون إنشاء فئة. يمكن أيضًا كتابة برنامج 'Hello World' دون إنشاء فصل دراسي.

بوراك أوزجيفيت

متطلبات استخدام REPL

هناك شرط واحد فقط للاستخدام ردل أي ينبغي أن يكون لدينا جافا 9 أو إصدار أعلى في نظامنا. إذا تم تثبيت Java 9 في نظامنا، فنحن جاهزون للاستخدام ردل . من أجل التحقق من التيار نسخة جافا في نظامك، افتح موجه الأوامر واكتب الأمر التالي:

 java -version 

حلقة تقييم القراءة والطباعة (REPL) في جافا

باستخدام REPL

فيما يلي بعض الأمثلة على REPL التي نقوم فيها بتقييم التعبيرات الرياضية، وحساب سلسلة فيبوناتشي، وإنشاء فئة ديناميكية، ومعرفة التاريخ، وتعديل الفئة.

عكس السلسلة في Java

مثال 1: تقييم التعبيرات الرياضية

 jshell> double a = 10; jshell> a= Math.pow(a, 2); jshell> a+20 jshell> /vars jshell> double data = Math.pow(8.3, 5); 

وصف:

في السطر الأول نقوم بإنشاء متغير 'أ' من النوع double ونضع قيمته الأولية 10. وبعد ذلك نجد مربع المتغير 'a' ونخزنه في نفس المتغير. بعد ذلك، نقوم ببساطة بإضافة 20 إلى المتغير 'a'. سيضع Jshell النتيجة في متغير مؤقت '' . بعد ذلك نقوم بتنفيذ '/لمن' الأمر الذي يوضح لنا جميع المتغيرات التي تم إنشاؤها. وأخيرا، نقوم بإنشاء متغير 'بيانات' من النوع المزدوج وتخزين 5ذقوة الرقم 8.3.

انتاج:

مصفوفة في لغة ج
حلقة تقييم القراءة والطباعة (REPL) في جافا

مثال 2: حساب متسلسلة فيبوناتشي

 jshell> int fibo(int no) (no == 1)) ...> return no;e all possible completions; total possible completions ...> else ...> return fibo(no-1)+fibo(no-2); ...> jshell> /methods jshell> fibo(11) jshell> fibo(12) jshell> int[] arr = { 1,2,3,4,5,6}; jshell> for(int i: arr){ ...> System.out.println(fibo(i)); ...> } 

وصف:

في الأسطر الستة الأولى من الكود، قمنا بإنشاء طريقة لسلسلة فيبوناتشي. بعد ذلك نستخدم /طُرق أمر Jshell، والذي يوضح لنا جميع الطرق المتاحة. في السطرين التاليين، نقوم باختبار فيبو () الطريقة عن طريق تمرير القيم الصحيحة. نقوم بإنشاء مصفوفة وصول لتحديد عدد الحدود التي نريد الحصول على متسلسلة فيبوناتشي. بعد ذلك، نقوم بتكرار كل قيمة من قيمة arr باستخدام كل حلقة. نقوم بتمرير كل قيمة من قيمة arr إلى طريقة fibo() ونطبع القيمة المرجعة الخاصة بها.

انتاج:

حلقة تقييم القراءة والطباعة (REPL) في جافا

مثال 3: REPL لإعادة الاستخدام

 jshell> int fibo(int no){ ...> return 2; ...> } jshell> for(int i: arr){ ...> System.out.println(fibo(i)); ...> } 

وصف:

في الكود أعلاه، قمنا بإنشاء طريقة fibo() بنفس نوع الإرجاع والوسيطة التي أنشأناها من قبل. في هذا الوقت، يتجاوز Jshell السابق 'فيبو ()' الطريقة مع الطريقة الحالية بعد ذلك، نقوم بتمرير كل قيمة من قيمة arr إلى الدالة للتأكد من تجاوز طريقة fibo() الخاصة بنا أم لا.

انتاج:

حلقة تقييم القراءة والطباعة (REPL) في جافا

مثال 4: تعريف الفصل

سنة إلى أرباع
 jshell> class Student{ ...> public String Name; ...> public int age; ...> public String course; ...> public int semester; ...> public Student(String Name, int age, String course, int semester){ ...> this.Name=Name; ...> this.age=age; ...> this.course = course; ...> this.semester=semester; ...> } ...> public void showData(){ ...> System.out.println('Name= '+ Name); ...> System.out.println('Age= '+ age); ...> System.out.println('Course= '+ course); ...> System.out.println('Semester= '+semester); ...> } ...> } 

وصف:

في الكود أعلاه، قمنا بإنشاء فئة 'طالب' والتي تحتوي على الاسم والعمر والدورة والفصل الدراسي. نقوم بإنشاء مُنشئ نقوم فيه بتعيين القيم لهذه المتغيرات. بعد المنشئ، نقوم بإنشاء طريقة توضح قيمة جميع المتغيرات لكل مثيل للفئة.

انتاج:

حلقة تقييم القراءة والطباعة (REPL) في جافا

المثال 5: إنشاء مثيل للفئة

 jshell> Student s1 = new Student( 'Shubham Rastogi', 18, 'MCA', 4); jshell> Student s2 = new Student( 'Kartik Rastogi', 23, 'MCA', 3); jshell> /vars jshell> s1.showData(); jshell> s2.showData(); 

وصف:

جافا تحويل السلسلة إلى عدد صحيح

في الكود أعلاه، قمنا بإنشاء مثيلين للفئة وتمرير القيمة إلى المُنشئ لجميع متغيرات الفئة. بعد ذلك، نقوم بتشغيل أمر Jshell للتحقق مما إذا كان قد تم إنشاء المتغيرات s1 وs2 أم لا. أخيرًا، نستدعي التابع showData()‎ لعرض بيانات كل مثيل.

انتاج:

حلقة تقييم القراءة والطباعة (REPL) في جافا