logo

Read-Eval-Print Loop (REPL) i Java

Det Læs-Eval-Print-løkke eller REPL er en shell-grænseflade. Denne grænseflade læser og evaluerer hver linje med input og udskriver derefter resultatet. Det Læs-Eval-Print-løkke hjælper os med at interagere med vores applikationsruntime, der er til stede i en bestemt tilstand. Kommandoerne læses og evalueres af REPL og print resultatet. Efter udskrivning af resultatet går REPL tilbage til starten for at læse, evaluere og udskrive vores næste input.

Read-Eval-Print Loop (REPL) i Java

Ved hjælp af REPL kan vi nemt skrive og teste vores Java-kode uden at kompilere den og kan se output direkte på konsollen.

Java har ikke REPL allerede?

Bestemt, en REPL skal være på et etableret sprog som Java . Men ikke alle sprog har REPL, og Java er et af dem. Java-udviklerne har krævet det mest. Java har haft noget som REPL i et stykke tid som Java Beanshell. Men projektet var ikke et fuldt udstyret REPL med andre sprog. Til dette blev Java 9 udgivet i 2016, som leverer et fuldt funktionelt REPL-miljø.

Hvorfor er REPL så nyttigt?

Ved at bruge REPL behøver vi ikke at kompilere eller teste vores Java-kode ved hjælp af javac-kommandoen. Efter brug af REPL,

  1. Intet behov for en editor for at skrive Java-programmet.
  2. Det er ikke nødvendigt at gemme Java-programmet.
  3. Ingen grund til at kompilere Java-program.
  4. Ingen grund til at redigere, hvis der kommer en kompilerings- eller runtime-fejl.
  5. Ingen grund til at gentage processen.
Read-Eval-Print Loop (REPL) i Java

Vi kan evaluere metoder, klasser og udsagn uden at oprette en klasse. 'Hello World'-programmet kan også skrives uden at oprette en klasse.

chiranjeevi skuespiller

Krav til brug af REPL

Der er kun et krav at bruge REPL , dvs. vi burde have Java 9 eller højere version i vores system. Hvis Java 9 er installeret i vores system, er vi klar til brug REPL . For at kontrollere strømmen version af Java i dit system skal du åbne kommandoprompten og skrive følgende kommando:

 java -version 

Read-Eval-Print Loop (REPL) i Java

Brug af REPL

Nedenfor er nogle eksempler på REPL, hvor vi evaluerer de matematiske udtryk, beregner Fibonacci-serien, opretter en dynamisk klasse, kender historien og ændrer klassen.

Eksempel 1: Evaluering af matematiske udtryk

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

Beskrivelse:

powershell multiline kommentar

I den første linje opretter vi en variabel 'en' af typen dobbelt og sætter dens begyndelsesværdi til 10. Derefter finder vi kvadratet af variabel 'a' og gemmer det i samme variabel. Derefter tilføjer vi blot 20 til variablen 'a'. Jshell vil sætte resultatet ind i en midlertidig variabel '' . Dernæst udfører vi '/hvis' kommando, som viser os alle de oprettede variabler. Til sidst opretter vi en variabel 'data' af typen dobbelt og gem 5thCifferets magt 8.3.

Produktion:

java strenge
Read-Eval-Print Loop (REPL) i Java

Eksempel 2: Beregning af Fibonacci-serien

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

Beskrivelse:

I de første seks linjer kode laver vi en metode til Fibonacci-serien. Derefter bruger vi /metoder kommando af Jshell, som viser os alle de tilgængelige metoder. I de næste to linjer tester vi fibo() metode ved at sende heltalsværdier. Vi skaber et array arr for at bestemme, hvor mange termer vi ønsker at få Fibonacci-serien. Dernæst itererer vi hver værdi af arr ved hjælp af hver sløjfe. Vi sender hver værdi af arr til fibo()-metoden og udskriver dens returværdi.

Produktion:

Read-Eval-Print Loop (REPL) i Java

Eksempel 3: REPL til genbrug

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

Beskrivelse:

java polymorfi

I ovenstående kode opretter vi en fibo()-metode med samme returtype og argument, som vi har oprettet før. På dette tidspunkt tilsidesætter Jshell det forrige 'fibo()' metode med den nuværende. Dernæst sender vi hver værdi af arr til funktionen for at sikre, om vores fibo()-metode er tilsidesat eller ej.

Produktion:

Read-Eval-Print Loop (REPL) i Java

Eksempel 4: Definition af klassen

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

Beskrivelse:

I ovenstående kode opretter vi klasse 'Studerende' , som har Navn, alder, kursus og semester. Vi opretter en konstruktør, hvor vi indstiller værdierne til disse variable. Efter konstruktøren opretter vi en metode, der viser værdien af ​​alle variablerne for hver forekomst af klassen.

Produktion:

Read-Eval-Print Loop (REPL) i Java

Eksempel 5: Oprettelse af en forekomst af klassen

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

Beskrivelse:

binær til bcd

I ovenstående kode opretter vi to forekomster af klassen og sender værdien til konstruktøren for alle klassevariablerne. Dernæst kører vi Jshell-kommandoen for at kontrollere, om s1- og s2-variabler er oprettet eller ej. Til sidst kalder vi metoden showData() for at vise data for hver forekomst.

Produktion:

Read-Eval-Print Loop (REPL) i Java