ホームページ > バックエンド開発 > Golang > Goでリストの値をフラグに解析するにはどうすればよいですか?

Goでリストの値をフラグに解析するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-29 08:36:13
オリジナル
977 人が閲覧しました

How to Parse List Values into Flags in Go?

Go でリスト値をフラグに解析する

Go では、Python の argparse に相当するのは flag パッケージです。組み込みのフラグ タイプは文字列、整数、およびブール値のみをサポートしますが、値のリストに対応するカスタム フラグ タイプを定義できます。

リストのカスタム フラグ タイプ

リスト値のカスタム フラグ タイプを定義するには、arrayFlags などの新しいタイプで flag.Value インターフェイスを実装します。 String() メソッドはリストの文字列表現を提供し、Set() メソッドはリストを新しい値で更新します。

カスタム フラグのバインド

カスタム フラグ タイプを定義している場合は、flag.Var() を使用してそれをフラグにバインドできます。これにより、実行時にそのフラグに複数の値を渡すことができます。

使用例

リストにカスタム フラグ タイプを使用する方法の例を次に示します。

package main

import (
    "flag"
    "fmt"
)

type arrayFlags []string

func (i *arrayFlags) String() string {
    return fmt.Sprintf("%v", *i)
}

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) // Prints [value1 value2]
}
ログイン後にコピー

次のコマンドでこのコードを実行すると、リストの値が myFlags に解析されます。変数:

go run your_file.go --list1 value1 --list1 value2
ログイン後にコピー

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

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