Korzystanie z REPL
Scala interaktywna
Korzystanie z REPL to bezpłatna lekcja Scala for Backend Engineering & Functional Programming na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Scala for Backend Engineering & Functional Programming, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Scala for Backend Engineering & Functional Programming zawiera 4 lekcji w sumie.
Czym jest REPL?
Termin REPL oznacza Read-Eval-Print Loop. To interaktywna powłoka, w której wpisuje się wyrażenia Scali i natychmiast wyświetla ich wyniki.
Uruchamia się ją, wykonując w terminalu polecenie scala (lub scala-cli repl). To najszybszy sposób na eksperymentowanie z językiem bez pisania całego programu.
Pierwsze wyrażenie
Proszę wpisać dowolne wyrażenie i nacisnąć Enter. REPL obliczy je i wyświetli wynik, jego typ oraz wygenerowaną nazwę.
Na przykład wpisanie 1 + 1 wyświetli coś w rodzaju val res0: Int = 2.
object Main {
def main(args: Array[String]): Unit = {
println(1 + 1)
}
}Zmienne res
Każdy obliczony wynik jest automatycznie zapisywany w zmiennej o nazwie resN (res0, res1, ...).
Można używać tych nazw w kolejnych wyrażeniach, dzięki czemu REPL przypomina działający kalkulator.
object Main {
def main(args: Array[String]): Unit = {
val res0 = 2 + 3
val res1 = res0 * 10
println(res1)
}
}Informacje o typie
Jedną z najbardziej przydatnych funkcji REPL jest informowanie o typie każdego wyniku.
Wpisanie "hello" wyświetla val res0: String = hello. Pomaga to zrozumieć, jaki typ Scala wywnioskuje dla dowolnego wyrażenia.
object Main {
def main(args: Array[String]): Unit = {
val greeting = "hello"
println(greeting)
}
}Definiowanie wartości
W REPL można definiować nazwane wartości za pomocą val. Pozostają one dostępne do końca sesji.
Po zdefiniowaniu można odwoływać się do nich w każdej kolejnej linii.
object Main {
def main(args: Array[String]): Unit = {
val pi = 3.14159
val radius = 2.0
println(pi * radius * radius)
}
}Definiowanie funkcji
Nie trzeba ograniczać się do jednowierszowych wyrażeń. Funkcje można definiować bezpośrednio w REPL i od razu je wywoływać.
Pozwala to tworzyć małe funkcje pomocnicze i natychmiast je testować.
object Main {
def square(x: Int): Int = x * x
def main(args: Array[String]): Unit = {
println(square(5))
}
}Dane wejściowe w wielu wierszach
Jeśli wpisana konstrukcja jest niekompletna (na przykład zawiera otwartą klamrę), REPL wyświetli monit kontynuacji i będzie czekać na resztę.
Dzięki temu można naturalnie wklejać lub wpisywać definicje obejmujące wiele wierszy, bez przedwczesnej próby ich obliczenia przez REPL.
object Main {
def main(args: Array[String]): Unit = {
val total =
1 +
2 +
3
println(total)
}
}Importowanie w REPL
W REPL można używać import tak samo jak w pliku. Jest to wygodne, gdy chcą Państwo skorzystać z funkcji pomocniczych biblioteki standardowej.
Na przykład import scala.math.* udostępnia sqrt, abs i inne elementy.
import scala.math.sqrt
object Main {
def main(args: Array[String]): Unit = {
println(sqrt(16.0))
}
}Przydatne polecenia REPL
REPL udostępnia specjalne polecenia rozpoczynające się od dwukropka:
:helpwyświetla listę wszystkich poleceń:resetczyści sesję:quitzamyka REPL:type exprwyświetla typ wyrażenia bez jego wykonywania
Dlaczego warto używać REPL?
REPL doskonale nadaje się do:
- szybkiego wypróbowywania nieznanego API
- sprawdzania, jaki typ zwraca wyrażenie
- prototypowania logiki przed dodaniem jej do projektu
- interaktywnej nauki języka
Łączenie wszystkiego
W jednej sesji można definiować wartości, pisać funkcje, importować biblioteki i łączyć ze sobą kolejne wyniki. REPL zachowuje wszystkie te elementy w zakresie.
Oto mały przykład, który można budować krok po kroku.
object Main {
def celsiusToF(c: Double): Double = c * 9 / 5 + 32
def main(args: Array[String]): Unit = {
val temps = List(0.0, 25.0, 100.0)
println(temps.map(celsiusToF))
}
}Szybkie sprawdzenie
Proszę sprawdzić swoją wiedzę o REPL Scali.
Podsumowanie
Dowiedzieli się Państwo, że REPL to interaktywna pętla Read-Eval-Print dla Scali.
- Dla każdego wyniku wyświetla wartość, typ i automatycznie nadaną nazwę
resN - Można definiować elementy
vali funkcje, które pozostają dostępne w sesji - Można importować biblioteki za pomocą
importi korzystać z danych wejściowych obejmujących wiele wierszy - Polecenia takie jak
:type,:reseti:quitsłużą do sterowania sesją
Często zadawane pytania
Czy lekcja „Korzystanie z REPL” jest bezpłatna?
Tak — pełny tekst „Korzystanie z REPL” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Scala for Backend Engineering & Functional Programming, przejdź na CoddyKit PRO. Kurs Scala for Backend Engineering & Functional Programming zawiera 4 lekcji w sumie.
Co nauczysz się w „Korzystanie z REPL”?
Scala interaktywna Ćwiczysz Scala for Backend Engineering & Functional Programming z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Scala for Backend Engineering & Functional Programming?
Nie wymagamy żadnego doświadczenia. Scala for Backend Engineering & Functional Programming w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.
Ile czasu zajmuje lekcja „Korzystanie z REPL”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Scala for Backend Engineering & Functional Programming?
Tak. Każda lekcja Scala for Backend Engineering & Functional Programming zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Korzystanie z REPL
- val, var i typy
- Wyrażenia zamiast instrukcji
- Interpolacja napisów