Interpolacja łańcuchów znaków

Elm:
Interpolacja łańcuchów znaków

How to:

W Elm nie ma bezpośredniego mechanizmu interpolacji stringów, jak w innych językach. Używamy funkcji String.concat lub operatora ++, by osiągnąć podobny efekt.

name = "Alicja"
greeting = "Cześć, " ++ name ++ "!"

-- Rezultat: "Cześć, Alicja!"

Możesz też użyć funkcji String.concat dla listy części:

name = "Alicja"
age = "25"

greeting = String.concat ["Cześć, ", name, "! Masz ", age, " lata."]

-- Rezultat: "Cześć, Alicja! Masz 25 lata."

Deep Dive

Elm kładzie duży nacisk na czytelność i bezpieczeństwo typów, co tłumaczy brak klasycznej interpolacji stringów. W przeszłości, programiści polegali na szablonach lub konkatenacji, aby “wplatać” dane do stringów. W Elm, musimy zawsze jawnie przekształcić wartości na stringi (używając na przykład String.fromInt dla intów) zanim połączymy je z innymi stringami.

Oto alternatywy:

  • Funkcje pomocnicze, które DBają o konwersję i łączenie.
  • Funkcje formatujące, takie jak printf w innych językach, choć wymagają one pakietów zewnętrznych w Elm, np. elm-format-string.

Przykład funkcji pomocniczej:

helloPerson : String -> Int -> String
helloPerson name age =
    "Cześć, " ++ name ++ "! Masz " ++ String.fromInt(age) ++ " lata."

-- Użycie funkcji:
greeting = helloPerson "Alicja" 25

-- Rezultat: "Cześć, Alicja! Masz 25 lata."

Interpolacja stringów w innych językach, jak JavaScript czy Python, jest bardziej bezpośrednia, ale Elm zachowuje prostotę dzięki unikaniu dodatkowej składni.

See Also