Clojure:
Samenvoegen van strings
Hoe te:
Clojure maakt stringconcatenatie eenvoudig met de str
functie. Laten we er direct induiken:
;; Eenvoudige concatenatie met de str-functie
(str "Hallo, " "wereld!")
;; => "Hallo, wereld!"
;; Meerdere strings samenvoegen
(str "Clojure" " is" " geweldig!")
;; => "Clojure is geweldig!"
;; Strings en andere waarden combineren
(str "Het antwoord is " 42)
;; => "Het antwoord is 42"
;; Gebruik maken van apply om een reeks strings samen te voegen
(apply str ["Voeg" " " "deze" " " "strings samen!"])
;; => "Voeg deze strings samen!"
Geweldig, dus je hebt het in actie gezien. Onthoud gewoon dat str
werkt met elke waarde door toString
erop aan te roepen. Als het nil is, krijg je de string “nil”.
Diepere Duik
Historisch gezien is stringconcatenatie er al sinds we tekst programmatisch moesten verwerken, en elke taal biedt zijn eigen methoden. In Clojure is str
deel van de kernbibliotheek, geïntroduceerd voor eenvoud en uniformiteit.
Alternatieven voor str
? Ja! StringBuilder
kan efficiënter zijn voor veel concatenaties, vooral in lussen. Clojure kan Java-methoden aanroepen, dus je kunt ook StringBuilder
gebruiken:
;; StringBuilder gebruiken voor efficiëntie
(let [builder (StringBuilder.)]
(.append builder "Dit is")
(.append builder " een meer")
(.append builder " efficiënte manier!")
(.toString builder))
;; => "Dit is een meer efficiënte manier!"
Waarom niet altijd StringBuilder
gebruiken dan? Voor de meeste alledaagse taken is str
simpeler en snel genoeg. StringBuilder
excelleert in scenario’s met hoge prestaties met veel concatenaties.
Wat implementatie betreft, aangezien Clojure gehost is op de JVM, profiteert het van Java’s mogelijkheden voor stringverwerking. Echter, zoals bij Java String
s, creëert elke str
aanroep een nieuwe String
, wat een overweging voor het geheugen kan zijn.
Zie Ook
- Documentatie van Clojure’s
str
functie: Clojure Strings - Java’s
StringBuilder
: Documentatie van StringBuilder - Praktische gids voor Clojure over
str
en meer: Clojure voor de moedigen en echten