ホームページ >バックエンド開発 >Golang >Cobra のフラグにオプションのパラメータを指定できますか?

Cobra のフラグにオプションのパラメータを指定できますか?

王林
王林転載
2024-02-13 08:40:08889ブラウズ

您可以为 Cobra 中的标志指定可选参数吗?

php エディター Zimo は次のように答えました: はい、Cobra ではフラグにオプションのパラメーターを指定できます。 Cobra は、エレガントな PHP アプリケーションを作成するための強力なコマンド ライン ツールです。フラグの後に角括弧 ([]) を追加することで、Cobra コマンドのオプションのパラメーターを指定できます。これにより、ユーザーは必要に応じて追加情報や構成オプションをオプションで提供できるようになります。オプションのパラメーターを使用すると、プログラムの柔軟性と適応性が向上し、ユーザーに優れたエクスペリエンスを提供できます。

質問の内容

プログラムにこのフラグがあり、正の数値のみを出力するとします。

c.PersistentFlags().IntVar(&SomeFlag, optionSomeFlag, 0, "何かをする (範囲: x-y)")

デフォルト値は 0 なので、ユーザーがフラグを切り替えないと、何も表示されません。 フラグにパラメータを受け入れさせながら、それ自体はデフォルト値を持つようにするにはどうすればよいでしょうか? つまり、デフォルト値が 5

の場合

./program --someflag 出力は 5 になります。

しかし、これをやると

./program --someflag=1 出力は 1 になります。

私は Cobra のユーザー ガイドに従おうとしていますが、デフォルト値を完全に指定するのではなく、ユーザーがフラグをトリガーした場合にのみデフォルト値を指定できるコマンド タイプを期待していました。私がこれを誤解したり、何かを見逃している可能性があります。

解決策

nooptdefvalを使用して実行できます

リーリー

以下のコードには、説明した動作を持つ cobra を使用したコマンド ライン アプリケーションの完全な例が見つかります。

リーリー

以下は、さまざまなフラグ値の実行結果です。

リーリー

以上がCobra のフラグにオプションのパラメータを指定できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。