logo

Read-Eval-Print Loop (REPL) Java

The Skaitymo-Eval-Print Loop arba REPL yra apvalkalo sąsaja. Ši sąsaja nuskaito ir įvertina kiekvieną įvesties eilutę ir išspausdina rezultatą. The Skaitymo-Eval-Print Loop padeda mums sąveikauti su konkrečios būsenos programos vykdymo laiku. Komandas nuskaito ir įvertina REPL ir atsispausdinkite rezultatą. Išspausdinus rezultatą, REPL grįžta į pradžią, kad nuskaitytų, įvertintų ir išspausdintų kitą įvestį.

Read-Eval-Print Loop (REPL) Java

Naudodami REPL galime lengvai parašyti ir išbandyti savo Java kodą jo nesudarydami ir matyti išvestį tiesiai konsolėje.

Java jau neturi REPL?

Žinoma, REPL turi būti nustatyta tokia kalba kaip Java . Tačiau ne visos kalbos turi REPL, o „Java“ yra viena iš jų. Labiausiai to pareikalavo „Java“ kūrėjai. „Java“ kurį laiką turėjo kažką panašaus į REPL kaip „Java Beanshell“. Tačiau projektas nebuvo visapusiškas REPL su kitomis kalbomis. Tam 2016 m. buvo išleista „Java 9“, kuri užtikrina visų funkcijų REPL aplinką.

Kodėl REPL tokia naudinga?

Naudojant REPL, mums nereikia kompiliuoti ar tikrinti Java kodo naudojant javac komandą. Panaudoję REPL,

  1. Norint parašyti Java programą, nereikia redaktoriaus.
  2. Nereikia išsaugoti Java programos.
  3. Nereikia kompiliuoti Java programos.
  4. Nereikia redaguoti, jei atsiranda kompiliavimo arba vykdymo klaida.
  5. Nereikia kartoti proceso.
Read-Eval-Print Loop (REPL) Java

Mes galime įvertinti metodus, klases ir teiginius nesukurdami klasės. Programą „Hello World“ taip pat galima parašyti nesukūrus klasės.

topologijos

REPL naudojimo reikalavimai

Yra tik vienas naudojimo reikalavimas REPL t.y. turėtume Java 9 arba naujesnė versija mūsų sistemoje. Jei mūsų sistemoje įdiegta „Java 9“, esame pasiruošę naudoti REPL . Norėdami patikrinti srovę Java versija savo sistemoje atidarykite komandų eilutę ir įveskite šią komandą:

char į int java
 java -version 

Read-Eval-Print Loop (REPL) Java

Naudojant REPL

Žemiau yra keletas REPL pavyzdžių, kuriuose įvertiname matematines išraiškas, apskaičiuojame Fibonačio eilutes, sukuriame dinaminę klasę, žinome istoriją ir keičiame klasę.

1 pavyzdys: matematinių išraiškų įvertinimas

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

Apibūdinimas:

Pirmoje eilutėje sukuriame kintamąjį 'a' tipo double ir nustatome jo pradinę reikšmę 10. Po to randame kintamojo 'a' kvadratą ir išsaugome jį tame pačiame kintamajame. Po to prie kintamojo „a“ tiesiog pridedame 20. Jshell įves rezultatą į laikinąjį kintamąjį „3 USD“ . Toliau mes vykdome '/kieno' komandą, kuri parodo mums visus sukurtus kintamuosius. Galiausiai sukuriame kintamąjį 'duomenys' tipo dvigubas ir saugokite 5thskaitmens galia 8.3.

Išvestis:

java palyginti eilutes
Read-Eval-Print Loop (REPL) Java

2 pavyzdys: Fibonačio serijos apskaičiavimas

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

Apibūdinimas:

Pirmose šešiose kodo eilutėse sukuriame Fibonačio serijos metodą. Po to mes naudojame /metodai Jshell komanda, kuri parodo visus galimus metodus. Kitose dviejose eilutėse mes išbandome fibo () metodas perduodant sveikųjų skaičių reikšmes. Mes sukuriame masyvą arr nustatyti, kiek terminų norime gauti Fibonačio seriją. Toliau pakartojame kiekvieną arr reikšmę kiekvienai kilpai. Kiekvieną arr reikšmę perduodame fibo() metodui ir išspausdiname jos grąžinamąją reikšmę.

Išvestis:

Read-Eval-Print Loop (REPL) Java

3 pavyzdys: REPL pakartotiniam naudojimui

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

Apibūdinimas:

Aukščiau pateiktame kode sukuriame fibo () metodą su tuo pačiu grąžinimo tipu ir argumentu, kurį sukūrėme anksčiau. Šiuo metu Jshell viršija ankstesnįjį 'fibo()' metodas su dabartiniu. Tada kiekvieną arr reikšmę perduodame funkcijai, kad įsitikintume, ar mūsų fibo () metodas yra nepaisomas, ar ne.

Išvestis:

java komentarai
Read-Eval-Print Loop (REPL) Java

4 pavyzdys: klasės apibrėžimas

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

Apibūdinimas:

Aukščiau pateiktame kode sukuriame klasę 'Studentas' , kurie turi vardą, amžių, kursą ir semestrą. Sukuriame konstruktorių, kuriame nustatome šių kintamųjų reikšmes. Po konstruktoriaus sukuriame metodą, kuris parodo kiekvieno klasės egzemplioriaus visų kintamųjų reikšmę.

Išvestis:

Read-Eval-Print Loop (REPL) Java

5 pavyzdys: klasės egzemplioriaus kūrimas

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

Apibūdinimas:

trinarinis operatorius java

Aukščiau pateiktame kode sukuriame du klasės egzempliorius ir perduodame visų klasės kintamųjų reikšmę konstruktoriui. Tada paleidžiame komandą Jshell, kad patikrintume, ar sukurti s1 ir s2 kintamieji, ar ne. Galiausiai, norėdami parodyti kiekvieno egzemplioriaus duomenis, iškviečiame metodą showData ().

Išvestis:

Read-Eval-Print Loop (REPL) Java