コマンドライン解析
std.getopt の使い方についてまとめます。
実行プログラムの引数を解析することができ、柔軟なプログラム作成を助けます。
Examples:
基本的な引数解析の例です
// 以下のようにプログラムを実行した場合の例です // app --format=json string[] args = ["app.exe", "--format=json"]; import std.getopt; // string format; // 引数の名前、引数を受け付ける変数、説明、で1セットの指定になります // 説明は省略可能です auto result = getopt(args, "format", "format引数の説明になります", &format); // --helpなどの引数が指定されたかどうかで分岐することができます if (result.helpWanted) { // 自動的に引数の説明などを表示します std.getopt.defaultGetoptPrinter("プログラム説明", result.options); return; } assert(format == "json");
Examples:
適度な折り返しを入れてコードフォーマッターでも可読性を保つ例です。
string[] args = ["app.exe", "--format=json"]; import std.getopt; string format; // 以下の記述によってdfmtの有効無効を切り替えることができます // dfmt off auto result = getopt( args, // getoptは歴史的経緯によってデフォルトの挙動がcaseInsensitiveですが // 多くの場合ではcaseSensitiveなほうが好ましいでしょう std.getopt.config.caseSensitive, "format", "format引数の説明になります", &format, ); // dfmt on if (result.helpWanted) { std.getopt.defaultGetoptPrinter("プログラム説明", result.options); return; } assert(format == "json");