0Pricing
Scala for Backend Engineering & Functional Programming · Lekcja

Interpolacja napisów

s, f i raw

Interpolacja napisów to bezpłatna lekcja Scala for Backend Engineering & Functional Programming na CoddyKit. To lekcja 4 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 interpolacja napisów?

Interpolacja napisów pozwala wstawiać wartości bezpośrednio do literału napisu zamiast łączyć je za pomocą +.

Napis poprzedza się literą, taką jak s, f lub raw, a następnie używa $ do wstawiania wartości.

Interpolator s

Interpolator s wstawia wartość zmiennej w miejscu, w którym zapisano $name.

Jest to najczęściej używany interpolator i zastępuje nieporęczne łączenie napisów.

object Main {
  def main(args: Array[String]): Unit = {
    val name = "Ada"
    println(s"Hello, $name!")
  }
}

Wyrażenia w nawiasach klamrowych

W przypadku konstrukcji bardziej złożonych niż prosta zmienna należy ująć wyrażenie w ${ ... }.

Nawiasy klamrowe wskazują interpolatorowi, gdzie wyrażenie się zaczyna i kończy.

object Main {
  def main(args: Array[String]): Unit = {
    val a = 4
    val b = 6
    println(s"Sum is ${a + b}")
  }
}

Wywoływanie metod wewnątrz

Wewnątrz ${ ... } można również wywoływać metody. Działa tam każde poprawne wyrażenie.

object Main {
  def main(args: Array[String]): Unit = {
    val word = "scala"
    println(s"Upper: ${word.toUpperCase}")
  }
}

Interpolator f

Interpolator f dodaje formatowanie w stylu printf. Po wyrażeniu podaje się format, na przykład %.2f dla dwóch miejsc po przecinku.

Doskonale nadaje się do kwot, wartości procentowych i wyrównanego wyniku.

object Main {
  def main(args: Array[String]): Unit = {
    val price = 9.5
    println(f"Price: $$$price%.2f")
  }
}

Formatowanie liczb całkowitych

Interpolator f formatuje również liczby całkowite, na przykład %d dla liczby dziesiętnej lub %05d do uzupełniania zerami.

object Main {
  def main(args: Array[String]): Unit = {
    val id = 42
    println(f"ID: $id%05d")
  }
}

Interpolator raw

Interpolator raw działa podobnie jak s, ale nie przetwarza sekwencji ucieczki.

Dlatego \n pozostaje dwoma znakami: odwrotnym ukośnikiem i literą n, zamiast stać się znakiem nowego wiersza.

object Main {
  def main(args: Array[String]): Unit = {
    println(raw"line1\nline2")
  }
}

Porównanie s i raw

W przypadku s sekwencja ucieczki \n staje się rzeczywistym znakiem nowego wiersza. W przypadku raw pozostaje dosłowna.

Warto używać raw dla ścieżek, wzorców wyrażeń regularnych i wszędzie tam, gdzie odwrotne ukośniki powinny zostać zachowane.

object Main {
  def main(args: Array[String]): Unit = {
    println(s"a\nb")
    println(raw"a\nb")
  }
}

Interpolacja w wielu wierszach

Interpolacja działa również z napisami ujętymi w potrójne cudzysłowy, które mogą obejmować wiele wierszy.

Doskonale nadaje się to do tworzenia czytelnego wyniku opartego na szablonie.

object Main {
  def main(args: Array[String]): Unit = {
    val user = "Grace"
    val score = 95
    println(s"""User: $user
Score: $score""")
  }
}

Escapowanie znaku dolara

Aby wyświetlić dosłowny znak dolara w interpolowanym napisie, należy zapisać $$.

Dzięki temu interpolator nie potraktuje go jako początku nazwy zmiennej.

object Main {
  def main(args: Array[String]): Unit = {
    val amount = 20
    println(s"Cost: $$$amount")
  }
}

Łączenie elementów

W jednym interpolowanym komunikacie można połączyć zwykłe zmienne, wyrażenie w nawiasach klamrowych i wywołanie metody.

object Main {
  def main(args: Array[String]): Unit = {
    val item = "book"
    val qty = 3
    val each = 12.0
    println(s"$qty ${item}s cost ${qty * each}")
  }
}

Szybkie sprawdzenie

Proszę sprawdzić swoją wiedzę o interpolatorach.

Podsumowanie

Dowiedzieli się Państwo o trzech głównych interpolatorach napisów w Scali:

  • s wstawia zmienne i wyrażenia ${expr}
  • f dodaje formatowanie w stylu printf, takie jak %.2f i %05d
  • raw zachowuje sekwencje ucieczki dosłownie
  • Do zapisania dosłownego znaku dolara służy $$
  • Interpolacja działa również z wielowierszowymi napisami w potrójnych cudzysłowach

Często zadawane pytania

Czy lekcja „Interpolacja napisów” jest bezpłatna?

Tak — pełny tekst „Interpolacja napisów” 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 „Interpolacja napisów”?

s, f i raw Ć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 4 z 4.

Ile czasu zajmuje lekcja „Interpolacja napisów”?

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