The Citire-Eval-Print Buclă sau REPL este o interfață shell. Această interfață citește și evaluează fiecare linie de intrare și apoi tipărește rezultatul. The Citire-Eval-Print Buclă ne ajută să interacționăm cu rularea aplicației noastre prezente într-o anumită stare. Comenzile sunt citite și evaluate de către REPL și tipăriți rezultatul. După imprimarea rezultatului, REPL revine la început pentru a citi, evalua și tipări următoarea noastră intrare.
Folosind REPL, putem scrie și testa cu ușurință codul nostru Java fără a-l compila și putem vedea rezultatul direct pe consolă.
Java nu are deja REPL?
Cu siguranță, un REPL trebuie să fie într-o limbă stabilită, cum ar fi Java . Dar, nu toate limbile au REPL, iar Java este una dintre ele. Dezvoltatorii Java au cerut cel mai mult. Java a avut ceva de genul REPL de ceva vreme ca Java Beanshell. Dar proiectul nu a fost un REPL complet cu alte limbi. Pentru aceasta, în 2016, a fost lansat Java 9, care oferă un mediu REPL cu funcții complete.
De ce este REPL atât de util?
Folosind REPL, nu trebuie să compilam sau să testăm codul nostru Java folosind comanda javac. După utilizarea REPL,
- Nu este nevoie de un editor pentru a scrie programul Java.
- Nu este nevoie să salvați programul Java.
- Nu este nevoie să compilați programul Java.
- Nu este nevoie să faceți editare dacă apare vreo eroare de compilare sau de rulare.
- Nu este nevoie să repetați procesul.
Putem evalua metode, clase și instrucțiuni fără a crea o clasă. Programul „Hello World” poate fi scris și fără a crea o clasă.
jdbc jdbc
Cerințe pentru utilizarea REPL
Există o singură cerință de utilizat REPL , adică ar trebui să avem Java 9 sau o versiune superioară în sistemul nostru. Dacă Java 9 este instalat în sistemul nostru, suntem gata de utilizare REPL . Pentru a verifica curentul versiunea de Java în sistemul dvs., deschideți promptul de comandă și tastați următoarea comandă:
java -version
Folosind REPL
Mai jos sunt câteva exemple de REPL în care evaluăm expresiile matematice, calculăm seria Fibonacci, creăm o clasă dinamică, cunoaștem istoria și modificăm clasa.
Exemplul 1: Evaluarea expresiilor matematice
ce este oracolul
jshell> double a = 10; jshell> a= Math.pow(a, 2); jshell> a+20 jshell> /vars jshell> double data = Math.pow(8.3, 5);
Descriere:
În prima linie, creăm o variabilă 'A' de tip double și îi setăm valoarea inițială 10. După aceea, găsim pătratul variabilei „a” și îl stocăm în aceeași variabilă. După aceea, pur și simplu adăugăm 20 la variabila „a”. Jshell-ul va pune rezultatul într-o variabilă temporară „3$” . În continuare, executăm '/a caror' comanda, care ne arată toate variabilele create. În cele din urmă, creăm o variabilă 'date' de tip dublu și stocați 5thputerea cifrei 8.3.
Ieșire:
padding css
Exemplul 2: Calcularea seriei Fibonacci
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)); ...> }
Descriere:
În primele șase linii de cod, creăm o metodă pentru seria Fibonacci. După aceea, folosim /metode comanda Jshell, care ne arată toate metodele disponibile. În următoarele două rânduri, testăm fibo() metoda prin transmiterea valorilor întregi. Creăm o matrice arr pentru a determina câți termeni dorim să obținem seria Fibonacci. Apoi, repetăm fiecare valoare a lui arr folosind pentru fiecare buclă. Trecem fiecare valoare a arr metodei fibo() și imprimăm valoarea returnată.
Ieșire:
Exemplul 3: REPL pentru reutilizare
decodare js base64
jshell> int fibo(int no){ ...> return 2; ...> } jshell> for(int i: arr){ ...> System.out.println(fibo(i)); ...> }
Descriere:
În codul de mai sus, creăm o metodă fibo() cu același tip de returnare și argument pe care le-am creat anterior. În acest moment, Jshell-ul îl înlocuiește pe precedentul „fibo()” metoda cu cea actuală. Apoi, transmitem fiecare valoare a arr funcției pentru a ne asigura dacă metoda noastră fibo() este suprascrisă sau nu.
Ieșire:
Exemplul 4: Definirea clasei
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); ...> } ...> }
Descriere:
În codul de mai sus, creăm o clasă 'Student' , care au Nume, vârstă, curs și semestru. Creăm un constructor în care setăm valorile acestor variabile. După constructor, creăm o metodă care arată valoarea tuturor variabilelor pentru fiecare instanță a clasei.
Ieșire:
Exemplul 5: Crearea unei instanțe a clasei
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();
Descriere:
instrument de tăiere în ubuntu
În codul de mai sus, creăm două instanțe ale clasei și transmitem valoarea constructorului pentru toate variabilele clasei. Apoi, rulăm comanda Jshell pentru a verifica dacă variabilele s1 și s2 sunt create sau nu. În cele din urmă, apelăm metoda showData() pentru a afișa datele fiecărei instanțe.
Ieșire: