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:
- Clojure Docs: str
- Java Docs: StringBuilder
- Clojure från början – en lättsmält guide: Clojure for the Brave and True