Clojure:
Merkkijonon pituuden selvittäminen
How to:
Clojure-kielessä merkkijonon pituuden saa selville count
-funktiolla:
(count "Moi maailma!") ;=> 12
Mutta eipäs unohdeta count
in ystävää - length
-funktiota hänen Java isännässään:
(.length "Hyvää päivää!") ;=> 13
Kumpikin tapa antaa sinulle merkkijonon pituuden, digest-muodossa.
Deep Dive
Clojure perustuu Javalle, joten count
on käärö Java-metodille. Historiallisesti, laskuri-tyyppiset toiminnot heijastavat tietorakenteiden sisäisiä toteutuksia. Clojuressa count
toimii eri tietotyypeillä, ei vain merkkijonoilla.
Vaihtoehtoja? Harvemmin tarvitaan, mutta rekursiivisia ja loop-recur -lähestymistapoja voi nähdä villissä luonnossa. Tässä esimerkki rekursiivisesta mallista merkkijonon pituuden laskemiselle:
(defn recursive-length [s]
(if (empty? s)
0
(inc (recursive-length (subs s 1)))))
(recursive-length "Hei taas!") ;=> 9
Vaikkakin ‘count’ on tehokas ja suositeltu, on aina hyvä ymmärtää, miten voisi rakentaa ratkaisun alusta asti, jos se kerran tarvittaisiin.
See Also
- Clojure
count
function: ClojureDocs - count - Java String
length()
method: JavaDoc - String