logo

Read-Eval-Print Loop (REPL) ב-Java

ה Read-Eval-Print Loop אוֹ REPL הוא ממשק מעטפת. ממשק זה קורא ומעריך כל שורת קלט ולאחר מכן מדפיס את התוצאה. ה Read-Eval-Print Loop עוזר לנו ליצור אינטראקציה עם זמן הריצה של האפליקציה שלנו במצב מסוים. הפקודות נקראות ומוערכות על ידי REPL ולהדפיס את התוצאה. לאחר הדפסת התוצאה, REPL חוזר להתחלה כדי לקרוא, להעריך ולהדפיס את הקלט הבא שלנו.

Read-Eval-Print Loop (REPL) ב-Java

באמצעות REPL, אנו יכולים לכתוב ולבדוק בקלות את קוד ה-Java שלנו מבלי להרכיב אותו ונוכל לראות את הפלט ישירות בקונסולה.

ל-Java אין כבר REPL?

בהחלט, REPL חייב להיות בשפה מבוססת כמו Java . אבל, לא לכל השפות יש את ה-REPL, ו-Java היא אחת מהן. מפתחי Java דרשו זאת ביותר. ל-Java היה משהו כמו REPL במשך זמן מה בתור Java Beanshell. אבל הפרויקט לא היה REPL מלא עם שפות אחרות. לשם כך, בשנת 2016, שוחרר Java 9, המספק סביבת REPL מלאה.

מדוע REPL כל כך מועיל?

על ידי שימוש ב-REPL, איננו צריכים להדר או לבדוק את קוד ה-Java שלנו באמצעות הפקודה javac. לאחר השימוש ב-REPL,

  1. אין צורך בעורך כדי לכתוב את תוכנית Java.
  2. אין צורך לשמור את תוכנית Java.
  3. אין צורך להדר תוכנית Java.
  4. אין צורך לבצע עריכה אם מגיעה שגיאת זמן הידור או זמן ריצה כלשהי.
  5. אין צורך לחזור על התהליך.
Read-Eval-Print Loop (REPL) ב-Java

אנו יכולים להעריך שיטות, מחלקות והצהרות מבלי ליצור מחלקה. את התוכנית 'שלום עולם' ניתן לכתוב גם ללא יצירת כיתה.

גודל כפית

דרישות לשימוש ב-REPL

יש רק דרישה אחת לשימוש REPL ,כלומר, היינו צריכים Java 9 או גרסה גבוהה יותר במערכת שלנו. אם Java 9 מותקן במערכת שלנו, אנחנו מוכנים לשימוש REPL . על מנת לבדוק את הזרם גרסה של Java במערכת שלך, פתח את שורת הפקודה והקלד את הפקודה הבאה:

סרגל כלים גישה מהירה למילה
 java -version 

Read-Eval-Print Loop (REPL) ב-Java

שימוש ב-REPL

להלן כמה דוגמאות של REPL שבהן אנו מעריכים את הביטויים המתמטיים, מחשבים את סדרת פיבונאצ'י, יוצרים מחלקה דינמית, מכירים את ההיסטוריה ומשנים את המחלקה.

דוגמה 1: הערכת ביטויים מתמטיים

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

תיאור:

בשורה הראשונה, אנו יוצרים משתנה 'א' מהסוג כפול ונקבע את הערך ההתחלתי שלו 10. לאחר מכן נמצא את הריבוע של המשתנה 'a' ומאחסנים אותו באותו משתנה. לאחר מכן, אנו פשוט מוסיפים 20 למשתנה 'a'. ה-Jshell יכניס את התוצאה למשתנה זמני '' . לאחר מכן, אנו מבצעים את '/של מי' הפקודה, המציגה לנו את כל המשתנים שנוצרו. לבסוף, אנו יוצרים משתנה 'נתונים' מסוג כפול ואחסן את ה-5ה'כוח הספרה 8.3.

תְפוּקָה:

livecricket.is
Read-Eval-Print Loop (REPL) ב-Java

דוגמה 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, שמראה לנו את כל השיטות הזמינות. בשתי השורות הבאות, אנו בודקים את fibo() שיטה על ידי העברת ערכי מספרים שלמים. אנחנו יוצרים מערך arr כדי לקבוע כמה מונחים אנחנו רוצים לקבל את סדרת פיבונאצ'י. לאחר מכן, אנו חוזרים על כל ערך של arr עבור כל לולאה. אנו מעבירים כל ערך של ה-arr לשיטת fibo() ומדפיסים את ערך ההחזר שלו.

תְפוּקָה:

Read-Eval-Print Loop (REPL) ב-Java

דוגמה 3: REPL לשימוש חוזר

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

תיאור:

בקוד לעיל, אנו יוצרים שיטה fibo() עם אותו סוג החזר וארגומנט שיצרנו בעבר. בשלב זה, ה-Jshell עוקף את הקודם 'fibo()' השיטה עם הנוכחית. לאחר מכן, אנו מעבירים כל ערך של ה-arr לפונקציה כדי לוודא אם שיטת ה-fibo() שלנו היא עוקפת או לא.

תְפוּקָה:

להגדיר מחשב
Read-Eval-Print Loop (REPL) ב-Java

דוגמה 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); ...> } ...> } 

תיאור:

בקוד לעיל, אנו יוצרים מחלקה 'סטוּדֶנט' , שיש להם שם, גיל, קורס וסמסטר. אנו יוצרים בנאי בו אנו מגדירים את הערכים למשתנים אלו. לאחר הבנאי, אנו יוצרים שיטה שמראה את הערך של כל המשתנים עבור כל מופע של המחלקה.

תְפוּקָה:

Read-Eval-Print Loop (REPL) ב-Java

דוגמה 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(); 

תיאור:

אובייקט ב-java

בקוד לעיל, אנו יוצרים שני מופעים של המחלקה ומעבירים את הערך לבנאי עבור כל משתני המחלקה. לאחר מכן, אנו מפעילים את הפקודה Jshell כדי לבדוק אם משתנים s1 ו-s2 נוצרים או לא. לבסוף, אנו קוראים לשיטת showData() כדי להציג נתונים של כל מופע.

תְפוּקָה:

Read-Eval-Print Loop (REPL) ב-Java