スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
Prev.    Category    Next 

Clojure でコマンドライン引数を使う

今回は Clojure でコマンドライン引数を扱うための方法について説明します。

1 ファイルのスクリプト

まずは Clojure で 1 ファイルをスクリプトとして実行する場合です。 スクリプトとして実行する方法については以前の記事をご覧下さい。 1 ファイルを実行する場合には、コマンドライン引数は *command-line-args* という特殊な名前の変数に格納されています。
(特殊な変数が * で囲まれているのは Emacs っぽいですね)

args.clj :
(println *command-line-args*)
~/clojure $ clojure.bat args.clj foo bar baz
(foo bar baz)
*command-line-args*シーケンスなので、各種のシーケンス用関数を使って値を取り出して使います。

args-seq.clj :
(doseq [arg *command-line-args*]
  (println arg))
~/clojure $ clojure.bat args-seq.clj foo bar baz
foo
bar
baz

Leiningen プロジェクト

次は Leiningen を使って作成した Clojure のプロジェクトの場合です。
~/clojure $ lein new app argsample
Generating a project called argsample based on the 'app' template.
プロジェクトの場合は分かりやすいでしょう。 core.clj-main 関数の引数 args がそのままコマンドラインの引数です。

argsample/src/argsample/core.clj :
(ns argsample.core
  (:gen-class))

(defn -main
  "Command line arguments sample"
  [& args]
  (println args)
  (doseq [arg args]
    (println arg))
  )
~/clojure/argsample $ lein run foo bar baz
(foo bar baz)
foo
bar
baz

オプション引数解析

今回はコマンド引数を単に扱う方法を紹介しました。 しかし、実際にプログラムを作る場合には更にオプションの解析を行いたいことでしょう。
Clojure には、 tools.cli というオプション解析用のライブラリーが用意されています。 これの使い方に関しては以下の記事を見てください。
関連記事
スポンサーサイト
Prev.    Category    Next 

Facebook コメント


コメント

コメントの投稿

Font & Icon
非公開コメント

このページをシェア
アクセスカウンター
アクセスランキング
[ジャンルランキング]
コンピュータ
9位
アクセスランキングを見る>>

[サブジャンルランキング]
プログラミング
3位
アクセスランキングを見る>>
カレンダー(アーカイブ)
プルダウン 降順 昇順 年別

09月 | 2017年10月 | 11月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -


はてな新着記事
はてな人気記事
ブロとも申請フォーム
プロフィール

yohshiy

Author:yohshiy
職業プログラマー。
仕事は主に C++ ですが、軽い言語マニアなので、色々使っています。

はてブ:yohshiy のブックマーク
Twitter:@yohshiy

サイト紹介
プログラミング好きのブログです。プログラミング関連の話題や公開ソフトの開発記などを雑多に書いてます。ただ、たまに英語やネット系の話になることも。
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。