Łączenie łańcuchów znaków

Clojure:
Łączenie łańcuchów znaków

Jak to zrobić:

W Clojure, łączenie stringów jest proste jak śniadanie. Użyj str, żeby połączyć kawałki tekstu razem. Oto przykłady:

(str "Przykład" " " "prosty")
;=>"Przykład prosty"

;; Łączenie z użyciem zmiennych
(let [first-name "Jan"
      last-name "Kowalski"]
  (str "Cześć, " first-name " " last-name "!"))
;=> "Cześć, Jan Kowalski!"

Jeśli masz kolekcję, użyj clojure.string/join:

(clojure.string/join ", " ["jabłka" "banany" "kiwi"])
;=> "jabłka, banany, kiwi"

Jeśli szybkość jest kluczowa, spróbuj użyć StringBuilder:

(-> (StringBuilder.)
    (.append "Przyśpieszamy ")
    (.append "proces")
    .toString)
;=> "Przyśpieszamy proces"

Deep Dive

Łączenie stringów to prozaiczna, ale kluczowa część programowania od samego początku. W Clojure, str jest magią, która wyręcza nas z myślenia o szczegółach. W innych językach, jak Java, bezpośrednie łączenie stringów jest drogie ze względu na niemutowalność stringów — każde + to nowy obiekt. Stąd StringBuilder w przykładach powyżej — w Javie realizuje ten sam koncept.

Alternatywą jest używanie format dla bardziej skomplikowanego formatowania, czy biblioteki jak clojure.string, oferująca join, która jest idealna, gdy mamy do czynienia z kolekcjami stringów.

Implementacja funkcji str jest prosta i efektywna, używa ona Java StringBuilder pod spodem. To znaczy, że jest szybka, ale za to nie zawsze idealna przy mega wielkich stringach, gdzie trzeba uważać na używanie pamięci.

Zobacz również