0Pricing
Scala for Backend Engineering & Functional Programming · Lekcja

Napisy wielowierszowe

Użyje Pan/Pani bloków w potrójnych cudzysłowach.

Napisy wielowierszowe 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 są stringi wielowierszowe?

Czasami potrzebujesz tekstu zajmującego kilka wierszy, na przykład komunikatu, JSON-a lub zapytania SQL.

Scala pozwala zapisywać taki tekst za pomocą potrójnych cudzysłowów, które dokładnie zachowują podziały wierszy wprowadzone w kodzie.

val text = """Line one
Line two"""
println(text)

Składnia z potrójnym cudzysłowem

Umieść tekst między trzema podwójnymi cudzysłowami z każdej strony: """...""".

Wewnątrz nie trzeba poprzedzać zwykłych podwójnych cudzysłowów znakiem ucieczki, dlatego ta składnia świetnie nadaje się do tekstu zawierającego cudzysłowy.

val json = """{"name": "Ada"}"""
println(json)

Rzeczywiste znaki nowej linii

W napisie ujętym w potrójny cudzysłów naciśnięcie klawisza Enter tworzy w wartości rzeczywistą nową linię.

To świetne rozwiązanie w przypadku bloków tekstu, w których układ ma zostać zachowany.

object Main extends App {
  val poem = """Roses are red
Scala is neat"""
  println(poem)
}

Problem z wcięciami

Jeśli w kodzie zastosujesz wcięcie w napisie wieloliniowym, początkowe spacje staną się częścią wartości.

Po wydrukowaniu często wygląda to nieestetycznie. Scala oferuje prosty sposób na usunięcie wcięć.

val msg = """Hello
    World"""
println(msg)

stripMargin

stripMargin usuwa początkowe białe znaki aż do znaku marginesu, którym domyślnie jest |.

Umieść | na początku każdej linii, a następnie wywołaj stripMargin, aby zachować uporządkowane wcięcia w kodzie.

val msg = """Hello
    |World""".stripMargin
println(msg)

Przejrzysty blok wieloliniowy

Połączenie potrójnego cudzysłowu z stripMargin zapewnia czytelny kod i uporządkowane dane wyjściowe.

Każda linia zaczyna się od |, które zostaje usunięte podczas wyświetlania.

object Main extends App {
  val report = """Report
    |Total: 5
    |Done!""".stripMargin
  println(report)
}

Niestandardowy znak marginesu

Jeśli | koliduje z tekstem, można przekazać do stripMargin inny znak marginesu.

Można na przykład użyć zamiast niego znaku # jako znacznika marginesu.

val s = """One
    #Two""".stripMargin('#')
println(s)

Wielolinijkowy tekst z interpolacją

Można połączyć potrójny cudzysłów z interpolatorem s, aby wstawiać wartości do tekstu wieloliniowego.

Umieść s przed otwierającym potrójnym cudzysłowem, a następnie używaj $variable jak zwykle.

val name = "Sam"
val msg = s"""Hi $name,
    |Welcome aboard!""".stripMargin
println(msg)

Budowanie zapytania SQL

Napisy wieloliniowe świetnie sprawdzają się podczas zapisywania zapytań SQL i innych długich tekstów w kodzie backendu.

Układ pozostaje czytelny zarówno w kodzie źródłowym, jak i w danych wyjściowych.

val query = """SELECT id, name
    |FROM users
    |WHERE active = true""".stripMargin
println(query)

Cudzysłowy wewnątrz cudzysłowów

W potrójnym cudzysłowie zwykłych podwójnych cudzysłowów nie trzeba poprzedzać znakiem ucieczki. Dzięki temu nie trzeba wszędzie umieszczać zapisu \".

To idealne rozwiązanie do osadzania kodu JSON lub cytowanych fraz.

val line = """He said "hello" to me"""
println(line)

Łączenie z metodami

Napis wieloliniowy nadal jest zwykłym obiektem String, więc działają na nim wszystkie standardowe metody.

W tym przykładzie usuwamy margines, przycinamy tekst i zliczamy jego długość.

val block = """abc
    |def""".stripMargin
println(block.length)
println(block.toUpperCase)

Szybkie sprawdzenie

Jak usunąć początkowe wcięcia z napisu wieloliniowego?

Podsumowanie

Nauczyłeś się zapisywać tekst wieloliniowy za pomocą potrójnego cudzysłowu """...""", który zachowuje znaki nowej linii i nie wymaga znaków ucieczki przed cudzysłowami.

Użyłeś stripMargin ze znacznikiem |, aby zachować porządek w kodzie, połączyłeś go z interpolatorem s i zastosowałeś zwykłe metody napisów do otrzymanej wartości.

Często zadawane pytania

Czy lekcja „Napisy wielowierszowe” jest bezpłatna?

Tak — pełny tekst „Napisy wielowierszowe” 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 „Napisy wielowierszowe”?

Użyje Pan/Pani bloków w potrójnych cudzysłowach. Ć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 „Napisy wielowierszowe”?

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. Podstawy napisów
  2. Interpolatory s, f i raw
  3. Typowe metody napisów
  4. Napisy wielowierszowe
← Powrót do Scala for Backend Engineering & Functional Programming