logo

Read-Eval-Print Loop (REPL) Javassa

The Read-Eval-Print Loop tai REPL on shell-käyttöliittymä. Tämä käyttöliittymä lukee ja arvioi jokaisen syöttörivin ja tulostaa sitten tuloksen. The Read-Eval-Print Loop auttaa meitä olemaan vuorovaikutuksessa tietyssä tilassa olevan sovelluksemme ajon aikana. Komennot lukevat ja arvioivat REPL ja tulosta tulos. Tulostuksen jälkeen REPL palaa alkuun lukeakseen, arvioidakseen ja tulostaakseen seuraavan syötteemme.

Read-Eval-Print Loop (REPL) Javassa

REPL:n avulla voimme helposti kirjoittaa ja testata Java-koodiamme kääntämättä sitä ja voimme nähdä tulosteen suoraan konsolissa.

Java ei ole jo REPL?

Ehdottomasti REPL:n on oltava vakiintuneella kielellä, kuten Java . Kaikilla kielillä ei kuitenkaan ole REPL:ää, ja Java on yksi niistä. Java-kehittäjät ovat vaatineet sitä eniten. Javalla on ollut jotain REPL:n kaltaista jonkin aikaa Java Beanshell -nimellä. Mutta projekti ei ollut täysin varusteltu REPL muiden kielten kanssa. Tätä varten julkaistiin vuonna 2016 Java 9, joka tarjoaa täysin toimivan REPL-ympäristön.

Miksi REPL on niin hyödyllinen?

REPL-komentoa käyttämällä meidän ei tarvitse kääntää tai testata Java-koodiamme javac-komennolla. REPL:n käytön jälkeen

  1. Java-ohjelman kirjoittamiseen ei tarvita editoria.
  2. Java-ohjelmaa ei tarvitse tallentaa.
  3. Java-ohjelmaa ei tarvitse kääntää.
  4. Muokkausta ei tarvitse tehdä, jos käännös- tai ajonaikainen virhe tulee.
  5. Prosessia ei tarvitse toistaa.
Read-Eval-Print Loop (REPL) Javassa

Voimme arvioida menetelmiä, luokkia ja lauseita luomatta luokkaa. 'Hello World' -ohjelman voi kirjoittaa myös luomatta luokkaa.

aikomus aikomus

REPL:n käytön vaatimukset

Käytössä on vain yksi vaatimus REPL eli meidän olisi pitänyt Java 9 tai uudempi versio järjestelmässämme. Jos Java 9 on asennettu järjestelmäämme, olemme valmiita käyttöön REPL . Virran tarkistamiseksi Java-versio avaa järjestelmässäsi komentokehote ja kirjoita seuraava komento:

 java -version 

Read-Eval-Print Loop (REPL) Javassa

Käyttämällä REPL

Alla on muutamia esimerkkejä REPL:stä, jossa arvioimme matemaattisia lausekkeita, laskemme Fibonacci-sarjan, luomme dynaamisen luokan, tunnemme historian ja muokkaamme luokkaa.

alfa beeta karsiminen

Esimerkki 1: Matemaattisten lausekkeiden arviointi

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

Kuvaus:

Ensimmäisellä rivillä luomme muuttujan 'a' tyypin double ja aseta sen alkuarvo 10. Sen jälkeen etsitään muuttujan 'a' neliö ja tallennetaan se samaan muuttujaan. Sen jälkeen yksinkertaisesti lisäämme 20 muuttujaan 'a'. Jshell laittaa tuloksen väliaikaiseen muuttujaan '3 dollaria' . Seuraavaksi toteutamme '/jonka' komento, joka näyttää meille kaikki luodut muuttujat. Lopuksi luomme muuttujan 'data' tyyppiä double ja säilytä 5thnumeron 8.3 teho.

Lähtö:

vertailukelpoinen merkkijono
Read-Eval-Print Loop (REPL) Javassa

Esimerkki 2: Fibonacci-sarjan laskeminen

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

Kuvaus:

Kuudella ensimmäisellä koodirivillä luomme menetelmän Fibonacci-sarjalle. Sen jälkeen käytämme /menetelmät Jshell-komento, joka näyttää meille kaikki käytettävissä olevat menetelmät. Kahdella seuraavalla rivillä testaamme fibo() menetelmä välittämällä kokonaislukuarvot. Luomme taulukon arr määrittääksemme kuinka monta termiä haluamme saada Fibonacci-sarjan. Seuraavaksi toistamme jokaisen arr-arvon käyttämällä jokaista silmukkaa. Välitämme jokaisen arr-arvon fibo()-metodille ja tulostamme sen palautusarvon.

Lähtö:

Read-Eval-Print Loop (REPL) Javassa

Esimerkki 3: REPL uudelleenkäyttöä varten

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

Kuvaus:

Yllä olevaan koodiin luomme fibo()-metodin, jolla on sama palautustyyppi ja argumentti, jonka olemme luoneet aiemmin. Tällä hetkellä Jshell ohittaa edellisen 'fibo()' menetelmä nykyisen kanssa. Seuraavaksi välitämme jokaisen arr-arvon funktiolle varmistaaksemme, onko fibo()-menetelmämme ohitettu vai ei.

Lähtö:

Read-Eval-Print Loop (REPL) Javassa

Esimerkki 4: Luokan määrittely

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

Kuvaus:

Yllä olevassa koodissa luomme luokan 'Opiskelija' , joissa on nimi, ikä, kurssi ja lukukausi. Luomme konstruktorin, jossa asetamme arvot näille muuttujille. Konstruktorin jälkeen luomme menetelmän, joka näyttää kaikkien muuttujien arvon luokan jokaiselle esiintymälle.

Lähtö:

Read-Eval-Print Loop (REPL) Javassa

Esimerkki 5: Luokan esiintymän luominen

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

Kuvaus:

yksinkertainen java ohjelma

Yllä olevassa koodissa luomme kaksi esiintymää luokasta ja välitämme arvon rakentajalle kaikille luokkamuuttujille. Seuraavaksi suoritamme Jshell-komennon tarkistaaksemme, luodaanko s1- ja s2-muuttujat vai ei. Lopuksi kutsumme showData()-menetelmää näyttämään kunkin esiintymän tiedot.

Lähtö:

Read-Eval-Print Loop (REPL) Javassa