ホームページ  >  記事  >  バックエンド開発  >  Golang でカスタム フラグを使用して複数の値を解析してリストにするにはどうすればよいですか?

Golang でカスタム フラグを使用して複数の値を解析してリストにするにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-16 07:08:03258ブラウズ

How can I parse multiple values into a list using custom flags in Golang?

Golang のリスト用カスタム フラグ

Golang のフラグ パッケージを使用すると引数を簡単に解析できますが、通常は文字列、整数、またはブール値。これは、値のリストを操作する場合に制限があるように思えるかもしれません。

Golang では、flag.Value インターフェイスを実装することでカスタム フラグを作成できます。このインターフェイスには、String() と Set() という 2 つのメソッドの実装が必要です。リストのカスタム フラグを定義すると、コマンドライン フラグを介して渡される複数の値の解析を有効にできます。

カスタム リスト フラグの定義

次の例を考えてみましょう。 :

package main

import "flag"
import "fmt"

type arrayFlags []string

// String() implements the flag.Value interface
func (i *arrayFlags) String() string {
    return fmt.Sprintf("%v", *i)
}

// Set() implements the flag.Value interface
func (i *arrayFlags) Set(value string) error {
    *i = append(*i, value)
    return nil
}

var myFlags arrayFlags

func main() {
    flag.Var(&myFlags, "list1", "Some description for this param.")
    flag.Parse()
    fmt.Println(myFlags)
}

これは、複数の値を受け入れる arrayFlags と呼ばれるカスタム フラグ タイプを定義します。フラグは「list1」フラグ名にバインドされており、flag.Parse() を使用して解析できます。

使用法

このカスタム フラグを使用して複数の値を渡すには、次のようにします。次のようにプログラムを実行できます:

go run your_file.go --list1 value1 --list1 value2 --list1 value3

これにより、myFlags 変数に指定された 3 つの値 ["value1"、"value2"、"value3"] が設定されます。その後、プログラム内でこれらの値にアクセスできます。

Playground

実際の例としては、次のプレイグラウンドにアクセスできます: [playground link]

以上がGolang でカスタム フラグを使用して複数の値を解析してリストにするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。