Go 言語では、コマンド ライン パラメーターは、プログラムに入力を渡し、実行時の動作を指定するための非常に重要な方法です。 Go には、コマンド ライン パラメーターを解析するための標準ライブラリ flag
が用意されています。この記事では、Go でコマンド ライン パラメーターを使用する方法を紹介します。
コマンド ライン パラメーターは、プログラムの実行時にコマンド ラインを介してプログラムに渡されるパラメーターであり、プログラム実行時の動作と入力を指定するために使用されます。が走っています。たとえば、Linux の ls
コマンドは、詳細情報を一覧表示する -l
、ドキュメントの表示と非表示を切り替える -a
など、複数のコマンド ライン パラメータを受け入れることができます。
Go では、os.Args
を使用して、プログラムの実行時に渡されるすべてのコマンド ライン引数を取得できます。 os.Args
は文字列スライスで、最初の要素はプログラムの名前で、次の要素はコマンド ライン パラメータです。例:
package main import ( "fmt" "os" ) func main() { fmt.Println(os.Args) }
プログラムを実行し、2 つのパラメータ hello
と world
を渡します:
$ go run main.go hello world
出力結果:
[/tmp/go-build3065006307/b001/exe/main hello world]
ご覧のとおり、os.Args
にはプログラムの名前と 2 つのコマンド ライン パラメーターが含まれています。
すべてのコマンド ライン パラメータは os.Args
を通じて取得できますが、実際の開発では通常、より柔軟な解析方法を使用します。コマンドライン引数。 Go 標準ライブラリは、コマンド ライン パラメーターを解析するための flag
パッケージを提供します。
flag
パッケージには、ブール値、文字列、整数の 3 種類のコマンド ライン パラメータが用意されています。これら 3 つのパラメーターは、それぞれ flag.Bool()
、flag.String()
、および flag.Int()
を通じて定義できます。
以下は、ブール値と文字列のコマンド ライン パラメーターを定義する簡単な例です。
package main import ( "flag" "fmt" ) func main() { // 定义命令行参数 var ( isVerbose bool name string ) flag.BoolVar(&isVerbose, "v", false, "verbose") flag.StringVar(&name, "name", "", "name of the user") // 解析命令行参数 flag.Parse() // 输出命令行参数 fmt.Printf("isVerbose=%v, name=%s ", isVerbose, name) }
上の例では、flag.BoolVar()
と # を使用します。 ##flag.StringVar() は、ブール値と文字列のコマンド ライン パラメーターをそれぞれ定義します。これら 2 つの関数には合計 4 つのパラメータがあります:
flag.Parse() 関数を呼び出してコマンド ライン パラメーターを解析する必要があります。
-v と
-name="Alice":
$ go run main.go -v -name=Alice
isVerbose=true, name=Alice
flag パッケージはコマンド ライン パラメーターを簡単に解析し、値を対応する変数に保存できることがわかります。
flag パッケージで提供される 3 種類のコマンド ライン パラメーターを使用することに加えて、いくつかの種類のコマンド ライン パラメーターをカスタマイズすることもできます。
package main import ( "fmt" "github.com/AlecAivazis/survey/v2" ) func main() { // 定义下拉框选项 options := []string{"red", "blue", "green"} // 定义命令行参数 var color string prompt := &survey.Select{ Message: "Pick a color:", Options: options, } survey.AskOne(prompt, &color) // 输出命令行参数 fmt.Printf("color=%s ", color) }
github.com/AlecAivazis/survey/v2ドロップダウン ボックス オプションを定義します。次に、
survey.AskOne() 関数を使用してドロップダウン ボックスを表示し、ユーザーに選択させます。
$ go run main.go
? Pick a color: ▸ red blue green Answer: red color=red
color に保存できることがわかります。 ### 変数。 概要
を使用してすべてのコマンド ライン パラメーターを取得することも、flag
パッケージまたはカスタム メソッドを使用してコマンド ライン パラメーターを解析することもできます。コマンド ライン パラメーターを使用すると、プログラムがより柔軟で使いやすくなり、高品質のコマンド ライン ツールを作成するために必要なスキルでもあります。
以上がGoでコマンドライン引数を使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。