Komut satırı arabirimi ile Clojure bir uygulama bina?
Ben sadece w/ Clojure başladı (Ruby gelen) ve komut satırı arayüzü ile küçük bir uygulama oluşturmak istiyorum. Nasıl bir CL giriş/çıkış yapabilirim?
Bir clojure olduğunu fark ettim.contrib.komut satırı, ama belgelere ince.
CEVAP
Burada with-command-line
makro kullanarak bir örnek. Aşağıdaki kod hiçbir şey yapmayan bir ana yöntem ile boş bir sınıf belirtir ama komut satırı argümanları değerleri çıktı.
(ns cmd-line-demo
(:gen-class)
(:use clojure.contrib.command-line))
(defn -main [& args]
(with-command-line args
"Command line demo"
[[foo "This is the description for foo" 1]
[bar "This is the description for bar" 2]
[boolean? b? "This is a boolean flag."]
remaining]
(println "foo: " foo)
(println "bar: " bar)
(println "boolean?: " boolean?)
(println "remaining: " remaining)))
ÇOĞALTMA de sınıf derleme:
user> (compile 'cmd-line-demo)
cmd-line-demo
Örnek kullanım
1) hayır komut satırı argümanları ile Yürütülen Yardım bilgisi gösterilecektir. Yardım bilgi da --help
-h
bayrakları ile görüntülenebilir. Yardım bilgileri otomatik olarak cmdspec oluşturulur unutmayın.
$ java -classpath . cmd_line_demo
Command line demo
Options
--foo <arg> This is the description for foo [default 1]
--bar <arg> This is the description for bar [default 2]
--boolean, -b This is a boolean flag.
2) Tanımlanmamış değişkenleri cmdspec belirtilen varsayılan değer olarak bağlayıcı alırsınız. Örnek olarak, bar
2
varsayılan değeri vardır.
$ java -classpath . cmd_line_demo --foo "changed value"
foo: changed value
bar: 2
boolean?: nil
remaining: []
3) Boolean bayrakları soneki ile belirtilen "?" cmdspec. Bayrağı kendine yapar unutmayındeğilbu vardır "?" adının bir parçası olarak.
$ java -classpath . cmd_line_demo -boolean
foo: 1
bar: 2
boolean?: true
remaining: []
4) Ayrıca cmdspec birden fazla semboller belirterek bayrak takma ad belirtebilirsiniz unutmayın. boolean?
b?
bayraklar ile bunu yaptım.
5) son olarak, remaining
ilişkili bayrakları olmadan, tüm diğer bağımsız değişkenleri yakalamak belirtilen ettim.
$ java -classpath . cmd_line_demo -foo test file1 file2 file3
foo: test
bar: 2
boolean?: nil
remaining: [file1 file2 file3]
Nasıl Node.js komut satırı geçmesi?...
Nasıl PostgreSQL komut satırı yardımcı...
Nasıl komisyon bir görev için komut sa...
Nasıl bir toplu iş dosyası komut satır...
Uygulama nasıl Windows komut satırında...