(Redirected from ja/command-line_arguments)
これは、初めて OCaml プログラムを書いたときに コマンドラインから渡される引数の読み出し方に悩む 人たちのための短いチュートリアルだ。
C言語のようにプログラムに渡される引数は配列に格納される。 伝統に従ってこの配列には argv という名前がつけられている。 標準ライブラリの Sys モジュールに含まれているので、 フルネームは Sys.argv である。 プログラムそれ自身の名前を含んだ引数の数は、単純に配列の長さであり、 Array.length 関数で分かる。
以下のプログラムでは Sys.argv 内の引数の位置もいっしょに引数を表示する。
open Printf
let _ =
for i = 0 to Array.length Sys.argv - 1 do
printf "[%i] %s\n" i Sys.argv.(i)
done
args.ml として上のプログラムを保存して ocaml args.ml arg1 arg2 arg3 と実行すると、 以下の結果を得る:
[0] args.ml [1] arg1 [2] arg2 [3] arg3
OCaml はサブプロセスとして実際に argv が args.ml arg1 arg2 arg3 となるような プログラムを走らせたことに注意しよう。 また、プログラムを ocamlopt -o args args.ml とコンパイルして、 ./args arg1 arg2 arg3 と走らせると以下の結果となる。
[0] ./args [1] arg1 [2] arg2 [3] arg3
コマンドライン引数を、配列Sys.argvを自分で走査せずに 処理するライブラリがある:
Arg モジュールが標準ライブラリにある。