0Pricing
Scala for Backend Engineering & Functional Programming · Lekcja

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:

  • :help wyświetla listę wszystkich poleceń
  • :reset czyści sesję
  • :quit zamyka REPL
  • :type expr wyś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 val i funkcje, które pozostają dostępne w sesji
  • Można importować biblioteki za pomocą import i korzystać z danych wejściowych obejmujących wiele wierszy
  • Polecenia takie jak :type, :reset i :quit sł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

  1. Korzystanie z REPL
  2. val, var i typy
  3. Wyrażenia zamiast instrukcji
  4. Interpolacja napisów
← Powrót do Scala for Backend Engineering & Functional Programming