ホームページ > バックエンド開発 > Golang > 2 つ以上のコマンド ライン フラグで同じ動作を制御するにはどうすればよいですか?

2 つ以上のコマンド ライン フラグで同じ動作を制御するにはどうすればよいですか?

WBOY
リリース: 2024-02-06 10:06:03
転載
1299 人が閲覧しました

2 つ以上のコマンド ライン フラグで同じ動作を制御するにはどうすればよいですか?

質問の内容

Go では、github.com/pborman/getopt パッケージを使用して次のようなことを行う方法を知っています。 getopt のコマンド ライン解析。

ただし、このパッケージは、各コマンド ライン オプションの文字列バージョンとルーン バージョンを 1 つだけサポートしているようです。場合によっては、オプションを 2 つ以上の方法で指定したいことがあります。たとえば、prog という仮想のプログラムの場合、次のコードがすべてまったく同じ機能を実行するようにしたいとします。 リーリー

次の操作を実行して、各変数

optrecurseoptrecursive ... の値をテストできることがわかりました。 リーリー

ただし、理想的には、これら 4 つの可能性のいずれかに値を提供する 1 回の呼び出しを行いたいと考えています。

Ruby の

optionparser パッケージに似た、特定のコマンド ライン オプションに対して 2 つ以上の可能性があるものが欲しいです。これが Ruby の例です... リーリー

私は比較的初心者なので、この質問に対する答えを探しているときに何か見落としている可能性があります。


正解


私の意見では、特定のコマンド ライン オプションを指定する方法を 2 つ以上提供することは、「おかしなこと」ではありません。

この「回答」で最初に言及した

github.com/clagraff/argparse パッケージはサポートされなくなりました。ただし、Ruby や Python などの他の言語のパラメーター解析パッケージで提供されるものと同様の方法で正確な機能を提供するために使用できる、より最新でまだサポートされているパッケージを見つけました: github.com /tcle/ cmdline -go/cmdline

これが go でどのように機能するかを示すサンプル プログラムです...

リーリー

プログラムは次の 4 つの方法で実行できますが、どの場合でも同じように動作します...

リーリー

4 つのケースすべてで、常に次の内容が出力されます。

リーリー

オプションを指定せずに実行すると (

、単に go run prog.go となります)、次の出力が表示されます。 リーリー 他のコマンドライン引数 (

-x

など) を指定して実行すると、次のように失敗します。 リーリー これで、任意のコマンドライン オプションを 2 つ以上の方法で指定できる go プログラムを作成できるようになりました。

以上が2 つ以上のコマンド ライン フラグで同じ動作を制御するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート