Golang Viper を使用したマップのスライスの読み取り
Viper ライブラリは、Go アプリケーションの優れた構成マネージャーとして機能します。 HCL、JSON、YAML などのさまざまなファイル形式から読み取ることができます。
課題:
構成ファイルからマップのスライスを読み取ることは、特に難しい場合があります。構造が入れ子になっている場合。この例では、グループ キーが複数のグループにマップされ、それぞれにさまざまなプロパティが設定されています。
一般的なアプローチ:
Viper を使用してマップのスライスを読み取るには、次のことができます。次のアプローチを採用します:
例:
type config struct { Interval int `mapstructure:"interval"` StatsdPrefix string `mapstructure:"statsd_prefix"` Groups []group `mapstructure:"group"` } type group struct { Group string `mapstructure:"group"` TargetPrefix string `mapstructure:"target_prefix"` Targets []target `mapstructure:"target"` } type target struct { Target string `mapstructure:"target"` Hosts []string `mapstructure:"hosts"` } var C config err := viper.Unmarshal(&C) if err != nil { log.Fatalf("unable to decode into struct, %v", err) }
このアプローチを使用することにより, Viper は、設定ファイルを定義された構造体に自動的にアンマーシャリングし、クリーンで簡潔な方法でアクセスできるようにします。データ。
以上がGo の Viper ライブラリを使用して構成ファイルからマップのスライスを効率的に読み取るにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。