差分

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

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
最新のリビジョン両方とも次のリビジョン
programming:rust:crate:getopts [2019/04/05] – [getopts - Rust] ikatakosprogramming:rust:crate:getopts [2019/04/19] – [getopts - Rust] ikatakos
行 6: 行 6:
   * [[https://docs.rs/crate/getopts/|getopts 0.2.18 - Docs.rs]]   * [[https://docs.rs/crate/getopts/|getopts 0.2.18 - Docs.rs]]
  
-Pythonのargparseと同じような使用感が、機能にはシンプ複雑なことは出来ない。+Pythonのargparseと同じような使用感。 
 + 
 +主にOptionsとMatchesの2つのオブジェクト提供される。 
 +Optionsオブジェクトにパースしたいキーワードをどんどん設定して最後に ''Options.parse()'' で解析する。 
 +返値のオブジェクトであるMatchesから、必要な情報を取得する。 
 + 
 +単純な機能は過不足ない。「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, -oXXX'' の指定に対応、''-o=XXX'' は不可 
-    * 可変長引数は未対応だが、同じキーワードで複数回指定されたのを配列として受け取ることはできる 
-      * ×: ''-o XXX YYY ZZZ'' 
-      * ○: ''-o XXX -o YYY -o ZZZ'' 
-    * 「''-a'' と ''-b'' を同時に指定することは出来ない」「''-a'' を指定したら ''-b'' も指定しないといけない」などは未対応 
-    * 指定されなかった場合のデフォルト値は対応 
-  * フラグ引数 
-    * ''-f'' など単独でフラグとして指定 
   * ヘルプ用文字列の自動生成可   * ヘルプ用文字列の自動生成可
  
-複雑なことをしたい場合はdocoptsを使う。+=====もっと複雑な構文が必要なら===== 
 + 
 +docoptsを使う。
  
   * [[http://ubnt-intrepid.hatenablog.com/entry/rust_commandline_parsers|Rust のコマンドラインオプション解析色々 - にっき]]   * [[http://ubnt-intrepid.hatenablog.com/entry/rust_commandline_parsers|Rust のコマンドラインオプション解析色々 - にっき]]
行 31: 行 63:
 =====Sample===== =====Sample=====
  
-<sxh rust>+<sxh rust;title:getopts_sample.rs>
 extern crate getopts; extern crate getopts;
  
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