ホームページ >バックエンド開発 >Golang >Golang でリスト引数を処理するカスタム フラグ タイプを作成する方法

Golang でリスト引数を処理するカスタム フラグ タイプを作成する方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-17 20:30:02784ブラウズ

How to Create Custom Flag Types to Handle List Arguments in Golang?

Golang でリスト引数を処理するためのカスタム フラグ タイプを定義する方法

Python の argparse モジュールは、値の数を指定する nargs 引数を提供します。リストを扱うときに解析されます。 Golang のフラグ パッケージは、基本的な型をサポートしていますが、リストを受け入れる直接的な方法を提供しません。この問題に対処するために独自のフラグ タイプを定義する方法は次のとおりです:

カスタム配列フラグ タイプの作成:

Golang プログラムは、フラグを実装することで独自のフラグ タイプを作成できます。 .Value インターフェイス。次のコードは、文字列の配列を処理する arrayFlags タイプを定義します。

type arrayFlags []string

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

// Set implements the flag.Value interface to update the flag value when a new argument is provided
func (i *arrayFlags) Set(value string) error {
    *i = append(*i, value)
    return nil
}

カスタム フラグ タイプの利用:

カスタム配列フラグ タイプを使用するには、次のことができます。 flag.Var() 関数を使用します。以下に例を示します:

var myFlags arrayFlags

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

複数のフラグの解析:

次のように複数のフラグを渡すことができます:

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

myFlags 変数は次のようになります。これで list1 フラグに渡された値が含まれ、値のリストにアクセスできるようになります。

以上がGolang でリスト引数を処理するカスタム フラグ タイプを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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