Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Membaca Sekeping Peta dengan Cekap daripada Fail Konfigurasi YAML Menggunakan Perpustakaan Viper Go?
Petua Membaca Sekeping Peta dengan Golang Viper
Dalam artikel ini, kami akan memberikan cerapan untuk membaca sekeping peta menggunakan perpustakaan Viper yang popular di Go.
Seperti yang dinyatakan, anda menggunakan Viper untuk mengurus fail konfigurasi dan anda mempunyai Konfigurasi YAML serupa dengan yang dikongsi. Matlamat anda adalah untuk membaca pilihan "kumpulan", yang boleh mengandungi berbilang kumpulan dengan tetapan masing-masing.
Memahami Gotcha
Apabila membaca pilihan "kumpulan" menggunakan viper.GetStringMap(), anda menghadapi masalah. Ini kerana pilihan "kumpulan" ialah sekeping peta, bukan satu peta. Viper tidak boleh menyimpulkan perkara ini secara automatik dan mengembalikan ralat.
Penyelesaian: Nyahmarshaling Tersuai
Untuk membaca sekeping peta, kami mengesyorkan anda membuat struct konfigurasi tersuai untuk mewakili anda struktur data yang dikehendaki. Dalam kes anda, anda boleh mentakrifkan struct untuk konfigurasi, kumpulan dan sasaran, seperti yang ditunjukkan dalam penyelesaian yang disediakan.
Setelah anda mentakrifkan struct ini, anda boleh menggunakan viper.Unmarshal() untuk menyahmarshal konfigurasi menjadi struct tersuai anda. Ini akan mengendalikan kepingan peta secara automatik dan mengisi struct anda dengan sewajarnya.
Kod Contoh:
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)) }
Dengan mengikuti pendekatan ini, anda boleh membaca kepingan anda dengan mudah peta menggunakan Viper.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membaca Sekeping Peta dengan Cekap daripada Fail Konfigurasi YAML Menggunakan Perpustakaan Viper Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!