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
- Podstawy napisów
- Interpolatory s, f i raw
- Typowe metody napisów
- Napisy wielowierszowe