Golang Viper로 지도 조각을 읽는 팁
이 기사에서는 다음을 사용하여 지도 조각을 읽는 방법에 대한 통찰력을 제공합니다. Go의 인기 있는 Viper 라이브러리입니다.
언급한 대로 Viper를 사용하여 구성 파일을 관리하고 있으며 공유된 구성과 유사한 YAML 구성입니다. 목표는 각각의 설정을 가진 여러 그룹을 포함할 수 있는 "그룹" 옵션을 읽는 것입니다.
문제 이해
다음을 사용하여 "그룹" 옵션을 읽을 때 viper.GetStringMap(), 문제가 발생했습니다. 이는 "그룹" 옵션이 단일 맵이 아닌 맵 조각이기 때문입니다. Viper는 이를 자동으로 추론할 수 없으며 오류를 반환합니다.
해결책: 사용자 정의 언마샬링
맵 조각을 읽으려면 사용자 정의 구성 구조체를 생성하여 원하는 데이터 구조. 귀하의 경우 제공된 솔루션에 표시된 대로 구성, 그룹 및 대상에 대한 구조체를 정의할 수 있습니다.
이러한 구조체를 정의한 후에는 viper.Unmarshal()을 사용하여 구성을 다음으로 역마샬링할 수 있습니다. 사용자 정의 구조체. 그러면 맵 조각이 자동으로 처리되고 이에 따라 구조체가 채워집니다.
예제 코드:
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 { panic(fmt.Errorf("unable to decode into struct, %v", err)) }
이 접근 방식을 따르면 맵 조각을 편리하게 읽을 수 있습니다. Viper를 사용한 지도.
위 내용은 Go의 Viper 라이브러리를 사용하여 YAML 구성 파일에서 맵 조각을 효율적으로 읽을 수 있는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!