差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
programming:rust:crate:getopts [2019/04/07] ikatakosprogramming:rust:crate:getopts [2019/04/19] (現在) – [getopts - Rust] ikatakos
行 7: 行 7:
  
 Pythonのargparseと同じような使用感。 Pythonのargparseと同じような使用感。
-Optionsオブジェクトにパースしたいキーワードをどんどん設定して、最後に ''Options.parse()'' で解析する。+ 
 +主にOptionsとMatchesの2つのオブジェクトが提供される。 
 +Optionsオブジェクトにパースしたいキーワードとその解析方法次々設定して、最後に ''Options.parse()'' で解析する。
 返値のオブジェクトであるMatchesから、必要な情報を取得する。 返値のオブジェクトであるMatchesから、必要な情報を取得する。
  
-機能的には過不足ないが、「2つの内いずれかは必須」などちょっと複雑なことは出来ない。+単純な機能は過不足ない「2つの内いずれかは必須」など複雑なことは出来ない。 
 + 
 +=====解析できる構文===== 
 + 
 +位置引数、キーワード引数、フラグ引数に対応(この名称は勝手に付けた)。キーワード引数とフラグ引数は、まとめて「オプション引数」と呼ばれることが多いかも。オプション引数の名前(ハイフンに続く文字)は自由に、「ハイフン1つ+1文字」の省略形と「ハイフン2つ+任意の文字数」のロング名とを設定できる。 
 + 
 +  > command AAA BBB -s CCC --longname DDD -e --flag 
 +   
 +  AAA BBB が位置引数 
 +  -s CCC --longname DDD がキーワード引数(値を伴うオプション引数) 
 +  -e --flag がフラグ引数(値を伴わないオプション引数) 
 + 
 +===位置引数=== 
 + 
 +  * 何番目の引数かによって指定 
 +  * キーワード引数とフラグ引数以外の引数を先頭から順に取得 
 +  * 「最初の位置引数が現れたら、後はハイフン付いていようと全て位置引数」と解釈するオプションが存在 
 + 
 +===キーワード引数=== 
 + 
 +ハイフンから始まる所定のキーワードに続けて指定。 
 + 
 +  ○: -o XXX  or  -oXXX  or  --opt XXX 
 +  ×: -o=XXX  or  --opt=XXX 
 + 
 +可変長引数は未対応だが、同じキーワードで複数回指定されたのを配列として受け取ることはできる。 
 + 
 +  ×: -o XXX YYY ZZZ 
 +  ○: -o XXX -o YYY -o ZZZ 
 + 
 +  * 「''-a'' と ''-b'' を同時に指定することは出来ない」「''-a'' を指定したら ''-b'' も指定しないといけない」などは未対応 
 +  * 指定されなかった場合のデフォルト値を指定可能 
 +  * ''FromStr'' traitを実装している型なら、パースして返すよう指定することが可能 
 + 
 +===フラグ引数=== 
 + 
 +''-f'' ''--flag'' など単独でフラグとして指定。booleanで取得。 
 + 
 +=====その他の機能=====
  
-  * 位置引数、キーワード引数、フラグ引数に対応 
-  * 位置引数 
-    * 何番目の引数かによって指定 
-    * 絶対的な位置ではなく、キーワード引数とフラグ引数以外の引数を順に取得 
-    * 「最初の位置引数が現れたら、後はハイフン付いていようと全て位置引数」と解釈するオプションが存在 
-  * キーワード引数 
-    * ハイフンから始まる所定のキーワードに続けて指定 
-      * ○: ''-o XXX'' or ''-oXXX'' or ''--opt XXX'' 
-      * ×: ''-o=XXX'' 
-    * 可変長引数は未対応だが、同じキーワードで複数回指定されたのを配列として受け取ることはできる 
-      * ×: ''-o XXX YYY ZZZ'' 
-      * ○: ''-o XXX -o YYY -o ZZZ'' 
-    * 「''-a'' と ''-b'' を同時に指定することは出来ない」「''-a'' を指定したら ''-b'' も指定しないといけない」などは未対応 
-    * 指定されなかった場合のデフォルト値を指定可能 
-    * ''FromStr'' traitを実装している型なら、パースして返すことが可能 
-  * フラグ引数 
-    * ''-f'' ''--flag'' など単独でフラグとして指定 
   * ヘルプ用文字列の自動生成可   * ヘルプ用文字列の自動生成可
  
-複雑なことをしたい場合はdocoptsを使う。+=====もっと複雑な構文が必要なら===== 
 + 
 +docoptsを使う。
  
   * [[http://ubnt-intrepid.hatenablog.com/entry/rust_commandline_parsers|Rust のコマンドラインオプション解析色々 - にっき]]   * [[http://ubnt-intrepid.hatenablog.com/entry/rust_commandline_parsers|Rust のコマンドラインオプション解析色々 - にっき]]
programming/rust/crate/getopts.txt · 最終更新: 2019/04/19 by ikatakos
CC Attribution 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0