CLOP v0.0.2リリース、golangコマンドラインの構文解析ライブラリを達成

changlog

  • 32# スライス変数を使用してFIXは、デフォルトの貪欲なモードに入ります

アドレス

https://github.com/guonaihong/clop

https://gitee.com/guonaihong/clop

CLOP

CLOPは、小さいながらも完全に形成された構造体ベースのコマンドライン解析機能、です。(ゼロから実現)

特徴

  • バインディングのサポート環境変数 env DEBUG=xx ./proc
  • サポート・パラメータは、コレクション  cat a.txt b.txt、あなたが置くことができるa.txt, b.txtバルクメンバーを、分類された分類である、にご指定の構造体のメンバーを集めます
  • サポートオプションの短いproc -d または長いオプションproc --debug楽勝
  • POSIXスタイルのコマンドラインのサポートは、supportコマンドの組み合わせがls -ltrあるls -l -t -r速記共通のPOSIX標準コマンドの達成を促進します
  • 子供の養育実現のgitサブコマンドのスタイルを容易にするためgit add 、簡単なサブコマンドの登録を、限りも、限り、あなたは好きなように、サポートされており、使用がCLOPを達成することができます無限のサブコマンドに、ライン上の3,4,5を書き込むような構造として、
  • デフォルト値のサポートdefault:"1"、複数のデータタイプのサポート、型変換を使用すると、手間を省くましょう
  • 親密なリピートコマンドエラー
  • 厳格な短いオプション、長いオプションエラー。避け曖昧誕生オプション
  • 有効性モードのサポートは、の束を記述する必要はありませんif x!= "" か、  if y!=0若者のコードを無駄に

コンテンツ

インスト

go get github.com/guonaihong/clop

クイックスタート

パッケージメインインポート"FMT" "" github.com/guonaihong/clopハロー構造体 {
	 ファイルストリング- ; --file "用法: "Fファイル"` `CLOPを" 
} FUNC メイン(){ 
	時間:= こんにちは {} 
	CLOP。バインド H)
	FMT。printf"%位のV \ n"は、H)
} // ./one試験-f // main.Hello {ファイル: "テスト"} // ./one試験--file // main.Hello {ファイル: "テスト"}


	

    

 
 



必要なフラグ

 パッケージメインインポート"FMT" "" github.com/guonaihong/clopカール構造体 {
     たURL 文字列; - "必須`:URLが"有効" --url "使用" U `CLOP" 
}をfuncをメイン() { 
    C := カール {} 
    CLOP。バインド C)
}


    

    

 
 

設定されたデフォルト値

デフォルトタグは、デフォルト値を設定するために使用することができる、書き込み直接普通型、複合型はJSONで表され

パッケージメインインポート"FMT" "github.com/guonaihong/clop" defaultExampleの構造体 {
     のInt INT 1 "` `デフォルト" のfloat64がのfloat64 デフォルトは`: "3.64"が` のfloat32がFLOAT32を`デフォルト: "3.32"` SliceString   [ ] 文字列`デフォルト: "[\" 1 \」、\ "2 \"] "` SliceInt      [] INT `デフォルト:"[1,2,3,4,5] "` SliceFloat64 [] のfloat64 `デフォルト:" [1.1,2.2,3.3,4.4,5.5]」` 
} 関数メイン(){ =


    

                   
             
             
      
         
     

  defaultExample {} 
    CLOP。バインドド)
    FMT。printf"%のV \ n"は、デ)
} //実行// ./use_def //出力:// {1 3.64 3.32 [1~2] [1 2 3 4 5] [1.1 2.2 3.3 4.4 5.5]}



サポート環境変数

use_env.go //ファイル名
パッケージのメインインポート"FMT" "github.com/guonaihong/clop" のenv のstruct {
	 OmpNumThreadの文字列ENV = omp_num_thread "用法: "OMP NUMスレッド"`: `CLOP" パスの文字列`CLOPを: "ENV = XPATH"使用"のXPath" ` 最大INT "最大スレッド"` CLOP: "ENV = MAX"利用 
} FUNC メイン(){ 
	E := ENV {} 
	CLOP。バインド E)
	FMT。printf"%#のV \ n"は


	

    
	          
	              

  

// ENV XPATH = `pwd`はomp_num_thread = 3 MAX = 4 ./use_env 
//出力
// main.env {OmpNumThread: "3"、パス: "/ホーム/郭"、最大:4}

サブコマンド

パッケージのメインインポート「FMT」「github.com/guonaihong/clop」タイプの追加のstruct {
	 すべてのブール値「用法:「--all; A」すべて追跡し、追跡されていないファイルの変更を追加し、 ` - :` CLOP」強制ブール値を` CLOP: " - F; --force"使用: "それ以外の場合は無視ファイルを追加できるように" ` PATHSPEC [] の文字列` CLOP: "引数= PATHSPEC" ` 
} MVの構造体 {
	 強制BOOL ` CLOP: " - F; --force 「用法:」」それ以外の場合は無視されたファイルを追加することが可能` 
} Gitの構造体 {
	 追加アドオン


	

             
	         
	 

    

    `CLOP:「サブコマンド=追加」用法:「インデックスにファイルの内容を追加」` 
	MVは  mvを  `CLOP:「サブコマンド= MV」用法:「移動やファイル、ディレクトリ、またはシンボリックリンクの名前を変更」` 
} FUNC メイン( ){ 
	G := gitの {} 
	CLOP。バインド G)
	FMT。printf"gitの:%#のV \ n"は、グラム)
	FMT。printf"gitの:セットMV(%のT)またはセットの追加(%T)\ n"は、CLOP IsSetSubcommand"MV" 。)、CLOP IsSetSubcommand"追加"))
} //実行://。

  




// gitの:main.git {追加:main.addを{すべて:偽の、力:[]の文字列(ゼロ)}、Mvは:main.mv {フォース:偽} PATHSPEC、真} 
// gitの:セットMV(偽)またはセットの追加(真)

Linuxのコマンドのオプションを実装

ネコ

パッケージメインインポート"FMT" "github.com/guonaihong/clop" タイプののstruct {
	 NumberNonblankのBOOL `CLOP: " - C; -数空白以外の" 	                     使用: "番号空でない出力線、オーバーライド"` ShowEndsはBOOL ` CLOP: " - E; -ショーエンド" 	               使用: ` "各行の終わりに表示$" 番号BOOL ` CLOP: " - N; -数" 	             使用: "数すべての出力ライン" ` SqueezeBlankのBOOL ` CLOP : " - S; -スクイーズ・ブランク" 	                   使用:」抑止は、空の出力ラインを「繰り返し` ShowTab ブール


	

    


	  


	  


	  


	  `CLOP: " - T; -ショータブ" 
	              使用"表示タブ文字^ Iとして"` 

	ShowNonprinting  BOOL  `CLOP: " - V; -ショー非印刷" 
	                      使用:「使用^及びM-表記、除きますLFDとTAB用の」 ` 

	ファイル [] の文字列 ` CLOP: "引数=ファイル" ` 
} FUNC メイン(){ 
	C :=  {} 
	ERR := CLOP。バインド C)
	FMT。printf"%の#のV、%sの\ n"は、C、ERR)
} / * 使用法:    ./cat [フラグ] <ファイル> フラグ:

 
 







    -E、 -ショー両端が各ラインの末尾に$を表示し
    、-T -ショータブは^ Iとしてタブ文字を表示する
    -c、 -上書き、数空白以外の数の空でない出力ライン
    -n、 -番号の数すべての出力ライン
    -s、 -スクイーズ-空白の抑制は、空の出力ラインが繰り返さ
    ショー印字されない使用^とM-表記を、LFDとTABを除いて- 、-v 

:Argsの
    <ファイル> 
* /

おすすめ

転載: www.oschina.net/news/114480/clop-0-0-2-released