Чтение аргументов командной строки

Clojure:
Чтение аргументов командной строки

Как:

В Clojure аргументы командной строки можно получить с помощью *command-line-args*. Вот простой пример:

;; Предположим, что этот код находится в файле `echo.clj`

(defn -main [& args]
  (println "Вы ввели:" args))

;; Для запуска: `clojure echo.clj arg1 arg2 arg3`

Пример вывода:

Вы ввели: (arg1 arg2 arg3)

Нужна обработка? Используйте функции коллекций Clojure.

(defn -main [& args]
  (let [processed-args (mapv str/upper-case args)]
    (println "Преобразованные в верхний регистр:" processed-args)))

;; Теперь, выполняя `clojure echo.clj hello world`, вы получите следующий вывод:

Пример вывода:

Преобразованные в верхний регистр: ["HELLO" "WORLD"]

Подробнее

*command-line-args* — это переменная в Clojure, установленная в последовательность аргументов, переданных скрипту. Она существует с ранних дней Clojure, что показывает, что Clojure относится к аргументам командной строки как к объектам первого класса.

Альтернативы? Механизмы Java для получения аргументов командной строки также работают в Clojure, благодаря взаимодействию. Но это более многословно.

Что касается деталей реализации, когда Clojure запускается, она анализирует аргументы и хранит их в *command-line-args*. Ваш скрипт затем может делать с ними что угодно — анализировать, игнорировать, преобразовывать, как захотите.

Смотрите также