配置文件
mysql:
conn: 1.1.1.1
user: yang
password: yang
consul:
addr: 2.2.2.2
user: yang
password: yang
代码
package main
import (
"fmt"
"gopkg.in/yaml.v3"
"os"
)
type EnvSD struct {
Mysql Mysql `yaml:"mysql"` // 这里是非匿名结构体,必须在配置中指定 mysql 字段作为 key
Consul Consul `yaml:"consul"`
}
type Mysql struct {
Conn string `yaml:"conn"`
Desc string `yaml:"desc"`
Auth `yaml:",inline"` // 这里使用了匿名结构体, 在配置文件中就直接指定 user, password即可
}
type Consul struct {
Addr string `yaml:"addr"`
Desc string `yaml:"desc"`
Auth `yaml:",inline"`
}
type Auth struct {
User string `yaml:"user"`
Password string `yaml:"password"`
}
func main() {
b, _ := os.ReadFile("./conf.yaml")
fmt.Println(string(b))
var conf EnvSD
yaml.Unmarshal(b, &conf)
fmt.Printf("%+v\n", conf)
}