logo

Read-Eval-Print Loop (REPL) Java nyelven

A Read-Eval-Print Loop vagy REPL egy shell interfész. Ez az interfész beolvassa és kiértékeli az egyes beviteli sorokat, majd kinyomtatja az eredményt. A Read-Eval-Print Loop segít nekünk, hogy kapcsolatba léphessünk egy adott állapotban lévő alkalmazás-futási környezetünkkel. A parancsokat a REPL és nyomtassa ki az eredményt. Az eredmény kinyomtatása után a REPL visszatér az elejére, hogy elolvassa, értékelje és kinyomtassa a következő bemenetet.

Read-Eval-Print Loop (REPL) Java nyelven

A REPL használatával könnyedén írhatjuk és tesztelhetjük Java kódunkat fordítás nélkül, és közvetlenül a konzolon láthatjuk a kimenetet.

A Java-ban még nincs REPL?

A REPL-nek határozottan olyan bevált nyelven kell lennie, mint például Jáva . De nem minden nyelv rendelkezik REPL-vel, és a Java is ezek közé tartozik. A Java fejlesztőknek volt erre leginkább szüksége. A Java-nak egy ideje van valami olyan, mint a REPL, mint Java Beanshell. De a projekt nem volt teljes értékű REPL más nyelvekkel. Ehhez 2016-ban megjelent a Java 9, amely teljes körű REPL környezetet biztosít.

Miért olyan hasznos a REPL?

A REPL használatával nem kell lefordítanunk vagy tesztelnünk a Java kódunkat a javac paranccsal. A REPL használata után,

  1. A Java program megírásához nincs szükség szerkesztőre.
  2. Nem kell menteni a Java programot.
  3. Nem kell Java programot fordítani.
  4. Nincs szükség szerkesztésre, ha fordítási vagy futási hiba lép fel.
  5. Nem szükséges megismételni a folyamatot.
Read-Eval-Print Loop (REPL) Java nyelven

A metódusokat, osztályokat és utasításokat osztály létrehozása nélkül is kiértékelhetjük. A „Hello World” program osztály létrehozása nélkül is megírható.

szoftvertesztelés típusai

A REPL használatának követelményei

A használatnak csak egy követelménye van REPL , azaz kellett volna Java 9 vagy újabb verzió a rendszerünkben. Ha a Java 9 telepítve van a rendszerünkben, készen állunk a használatra REPL . Az áram ellenőrzése érdekében Java verziója a rendszerben nyissa meg a parancssort, és írja be a következő parancsot:

 java -version 

Read-Eval-Print Loop (REPL) Java nyelven

A REPL használatával

Az alábbiakban néhány példa a REPL-re, amelyben kiértékeljük a matematikai kifejezéseket, kiszámítjuk a Fibonacci-sort, létrehozunk egy dinamikus osztályt, ismerjük az előzményeket és módosítjuk az osztályt.

1. példa: Matematikai kifejezések kiértékelése

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

Leírás:

Az első sorban létrehozunk egy változót 'a' Ezt követően keressük meg az 'a' változó négyzetét, és tároljuk ugyanabban a változóban. Ezután egyszerűen hozzáadunk 20-at az 'a' változóhoz. A Jshell az eredményt egy ideiglenes változóba helyezi '3 dollár' . Ezután végrehajtjuk a '/akinek' parancsot, amely megmutatja nekünk az összes létrehozott változót. Végül létrehozunk egy változót 'adat' típusú dupla, és tárolja az 5thszámjegy hatványa 8.3.

tavaszi csizma annotációk

Kimenet:

numpy linspace
Read-Eval-Print Loop (REPL) Java nyelven

2. példa: Fibonacci-sorozat kiszámítása

 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)); ...> } 

Leírás:

A kód első hat sorában létrehozunk egy metódust a Fibonacci sorozathoz. Ezt követően használjuk a /mód Jshell parancsot, amely megmutatja az összes elérhető metódust. A következő két sorban teszteljük a fibo() módszer egész számok átadásával. Készítünk egy tömböt arr hogy meghatározzuk, hány taggal szeretnénk megkapni a Fibonacci sorozatot. Ezután megismételjük az arr minden egyes értékét minden ciklushoz. Az arr minden értékét átadjuk a fibo() metódusnak, és kiírjuk a visszatérési értékét.

Kimenet:

Read-Eval-Print Loop (REPL) Java nyelven

3. példa: REPL újrafelhasználáshoz

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

Leírás:

A fenti kódban létrehozunk egy fibo() metódust ugyanazzal a visszatérési típussal és argumentummal, mint amit korábban létrehoztunk. Ekkor a Jshell felülírja az előzőt 'fibo()' módszerrel a jelenlegivel. Ezután az arr minden egyes értékét átadjuk a függvénynek, hogy megbizonyosodjunk arról, hogy a fibo() metódusunk felülbírálva van-e vagy sem.

linkedlist java-ban

Kimenet:

Read-Eval-Print Loop (REPL) Java nyelven

4. példa: Az osztály meghatározása

 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); ...> } ...> } 

Leírás:

A fenti kódban osztályt hozunk létre 'Diák' , amelyek neve, életkora, tanfolyama és féléve. Létrehozunk egy konstruktort, amelyben beállítjuk ezeknek a változóknak az értékeit. A konstruktor után létrehozunk egy metódust, amely megmutatja az osztály minden példányához tartozó összes változó értékét.

Kimenet:

Read-Eval-Print Loop (REPL) Java nyelven

5. példa: Az osztály példányának létrehozása

 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(); 

Leírás:

eol pythonban

A fenti kódban létrehozzuk az osztály két példányát, és az összes osztályváltozó értéket átadjuk a konstruktornak. Ezután a Jshell parancsot futtatjuk annak ellenőrzésére, hogy létrejött-e az s1 és s2 változó. Végül meghívjuk a showData() metódust az egyes példányok adatainak megjelenítéséhez.

Kimenet:

Read-Eval-Print Loop (REPL) Java nyelven