Commandoregelargumenten lezen

Clojure:
Commandoregelargumenten lezen

Hoe:

In Clojure, pak je commandoregelargumenten met *command-line-args*. Hier is een eenvoudig voorbeeld:

;; Stel je voor dat deze code in een bestand genaamd `echo.clj` staat

(defn -main [& args]
  (println "Je hebt ingevoerd:" args))

;; Om te draaien: `clojure echo.clj arg1 arg2 arg3`

Voorbeelduitvoer:

Je hebt ingevoerd: (arg1 arg2 arg3)

Moet je ze verwerken? Gebruik dan de collectiefuncties van Clojure.

(defn -main [& args]
  (let [processed-args (mapv str/upper-case args)]
    (println "Hoofdletters:" processed-args)))

;; Nu zal het uitvoeren van `clojure echo.clj hallo wereld` uitvoeren:

Voorbeelduitvoer:

Hoofdletters: ["HALLO" "WERELD"]

Diepere duik

De *command-line-args* is een var in Clojure, ingesteld op een reeks argumenten die aan het script zijn doorgegeven. Het bestaat al sinds de beginjaren van Clojure, wat aantoont dat Clojure commandoregelargumenten als eersteklas burgers behandelt.

Alternatieven? Java’s mechanismen voor het grijpen van commandoregelargumenten werken ook in Clojure, dankzij interoperabiliteit. Maar dat is uitvoeriger.

Wat betreft implementatiedetails, wanneer Clojure start, analyseert het de argumenten en slaat ze op in *command-line-args*. Je script kan er dan wat dan ook mee doen—analyseren, negeren, transformeren, noem maar op.

Zie ook