(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
モジュールが標準ライブラリにある。