加载yaml配置需要依赖第三方包,但用起来简单方便
下载文件:go get gopkg.in/yaml.v2
config.yaml
App_Name: my_project
Env: [dev, test, product]
App:
Path: /www/root
Mysql:
Host: 127.0.0.1
Name: root
Password: 123456
Port: 3306
main.go
package main
import (
"fmt"
"gopkg.in/yaml.v2"
"log"
"os"
)
type Config struct {
AppName string `yaml:"App_Name"`
Env []string `yaml:"Env"`
App *App `yaml:"App"`
Mysql *Mysql `yaml:"Mysql"`
}
type App struct {
Path string `yaml:"Path"`
}
type Mysql struct {
Host string `yaml:"Host"`
Name string `yaml:"Name"`
Password string `yaml:"Password"`
Port int16 `yaml:"Port"`
}
func main() {
file, err := os.ReadFile("./config.yaml")
if err != nil {
log.Fatal(err)
return
}
var c Config
err = yaml.Unmarshal(file, &c)
if err != nil {
log.Fatal(err)
return
}
fmt.Printf("%s, %v, %v, %v", c.AppName, c.Env, c.App, c.Mysql)
}