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.
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,
- A Java program megírásához nincs szükség szerkesztőre.
- Nem kell menteni a Java programot.
- Nem kell Java programot fordítani.
- Nincs szükség szerkesztésre, ha fordítási vagy futási hiba lép fel.
- Nem szükséges megismételni a folyamatot.
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
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
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:
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:
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:
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: