logo

Read-Eval-Print Loop (REPL) v Javě

The Smyčka Read-Eval-Print nebo REPL je rozhraní shellu. Toto rozhraní čte a vyhodnocuje každý řádek vstupu a poté vytiskne výsledek. The Smyčka Read-Eval-Print nám pomáhá komunikovat s naším běhovým prostředím aplikací přítomným v určitém stavu. Příkazy jsou čteny a vyhodnocovány REPL a vytisknout výsledek. Po vytištění výsledku se REPL vrátí na začátek a přečte, vyhodnotí a vytiskne náš další vstup.

Read-Eval-Print Loop (REPL) v Javě

Pomocí REPL můžeme snadno psát a testovat náš Java kód bez jeho kompilace a můžeme vidět výstup přímo na konzoli.

Java ještě nemá REPL?

Rozhodně musí být REPL v zavedeném jazyce, jako je Jáva . Ale ne všechny jazyky mají REPL a Java je jedním z nich. Java vývojáři to vyžadují nejvíce. Java má nějakou dobu něco jako REPL jako Java Beanshell. Ale projekt nebyl plně vybavený REPL s jinými jazyky. Za tímto účelem byla v roce 2016 vydána Java 9, která poskytuje plně funkční prostředí REPL.

Proč je REPL tak užitečný?

Při použití REPL nepotřebujeme kompilovat nebo testovat náš kód Java pomocí příkazu javac. Po použití REPL,

  1. K napsání programu Java není potřeba editor.
  2. Program Java není třeba ukládat.
  3. Není třeba kompilovat Java program.
  4. Není třeba provádět úpravy, pokud dojde k chybě při kompilaci nebo běhu.
  5. Proces není třeba opakovat.
Read-Eval-Print Loop (REPL) v Javě

Můžeme vyhodnocovat metody, třídy a příkazy, aniž bychom třídu vytvořili. Program 'Hello World' lze také napsat bez vytvoření třídy.

obsazení v sql

Požadavky na používání REPL

Existuje pouze jeden požadavek na použití REPL , tj. měli bychom mít Java 9 nebo vyšší verze v našem systému. Pokud je v našem systému nainstalována Java 9, jsme připraveni k použití REPL . Aby bylo možné zkontrolovat proud verze Java ve svém systému otevřete příkazový řádek a zadejte následující příkaz:

nainstalovat maven
 java -version 

Read-Eval-Print Loop (REPL) v Javě

Pomocí REPL

Níže je několik příkladů REPL, ve kterých vyhodnotíme matematické výrazy, vypočítáme Fibonacciho řadu, vytvoříme dynamickou třídu, známe historii a třídu upravíme.

Příklad 1: Vyhodnocení matematických výrazů

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

Popis:

V prvním řádku vytvoříme proměnnou 'A' typu double a nastavíme jeho počáteční hodnotu 10. Poté najdeme druhou mocninu proměnné 'a' a uložíme ji do stejné proměnné. Poté jednoduše přidáme 20 do proměnné 'a'. Jshell vloží výsledek do dočasné proměnné '' . Dále provedeme '/jehož' příkaz, který nám zobrazí všechny vytvořené proměnné. Nakonec vytvoříme proměnnou 'data' typu double a uložte 5čtsíla číslice 8.3.

Výstup:

sada strojopisu
Read-Eval-Print Loop (REPL) v Javě

Příklad 2: Výpočet Fibonacciho řady

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

Popis:

V prvních šesti řádcích kódu vytvoříme metodu pro Fibonacciho řadu. Poté použijeme /metody příkaz Jshell, který nám ukáže všechny dostupné metody. V následujících dvou řádcích otestujeme fibo() metoda předáním celočíselných hodnot. Vytvoříme pole arr abychom určili, kolik termínů chceme získat Fibonacciho řadu. Dále iterujeme každou hodnotu arr pomocí pro každou smyčku. Každou hodnotu arr předáme metodě fibo() a vypíšeme její návratovou hodnotu.

Výstup:

Read-Eval-Print Loop (REPL) v Javě

Příklad 3: REPL pro opětovné použití

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

Popis:

Ve výše uvedeném kódu vytvoříme metodu fibo() se stejným návratovým typem a argumentem, jaké jsme vytvořili dříve. V tomto okamžiku Jshell přepíše předchozí 'fibo()' metoda se současnou. Dále předáme každou hodnotu arr funkci, abychom zajistili, zda je naše metoda fibo() přepsána nebo ne.

Výstup:

seznam.seřadit java
Read-Eval-Print Loop (REPL) v Javě

Příklad 4: Definování třídy

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

Popis:

Ve výše uvedeném kódu vytvoříme třídu 'Student' , které mají Jméno, věk, kurz a semestr. Vytvoříme konstruktor, ve kterém těmto proměnným nastavíme hodnoty. Po konstruktoru vytvoříme metodu, která ukazuje hodnotu všech proměnných pro každou instanci třídy.

Výstup:

Read-Eval-Print Loop (REPL) v Javě

Příklad 5: Vytvoření instance třídy

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

Popis:

jakou mám velikost monitoru

Ve výše uvedeném kódu vytvoříme dvě instance třídy a předáme hodnotu konstruktoru pro všechny proměnné třídy. Dále spustíme příkaz Jshell, abychom zkontrolovali, zda jsou proměnné s1 a s2 vytvořeny nebo ne. Nakonec zavoláme metodu showData() k zobrazení dat každé instance.

Výstup:

Read-Eval-Print Loop (REPL) v Javě