Sammanslagning av strängar

Clojure:
Sammanslagning av strängar

Så här gör du:

I Clojure kan du konkatenera strängar med str funktionen. Här är ett enkelt exempel:

;; Konkatenera två strängar
(str "Hej, " "världen!")
;; => "Hej, världen!"

Du kan lägga ihop flera strängar och till och med blanda in andra datatyper som kommer att konverteras till strängar:

;; Blanda strängar och siffror
(str "Fibonacci-tal: " 1 ", " 1 ", " 2 ", " 3 ", " 5)
;; => "Fibonacci-tal: 1, 1, 2, 3, 5"

Sammanslagen av tomma strängar eller null-värden:

;; Hantera tomma strängar och null
(str "Tystnad före " nil " stormen.")
;; => "Tystnad före  stormen."

På djupet:

Tillbaka i tiden, i Lisp-dialekter före Clojure, var konkatenering ofta gjord med funktioner som concat som fungerade på listor snarare än strängar. Med tiden utvecklades str, en högre nivå funktion specifikt för strängkonkatenering.

Alternativ till str inkluderar att använda format för mer kontrollerade format eller StringBuilder för prestandakritiska applikationer där många strängar ska sammanfogas.

När det gäller implementering använder str under huven Java’s StringBuilder för att effektivisera processen.

Exempel med format:

(format "Han sa: %s" "Hello, world!")
;; => "Han sa: Hello, world!"

Med StringBuilder:

(let [sb (StringBuilder.)]
  (.append sb "Introduktion: ")
  (.append sb "Clojure")
  (.append sb " rocks!")
  (str sb))
;; => "Introduktion: Clojure rocks!"

Se även: