go基础学习-yaml文件的解析
YAML 是一种简洁的非标记语言。YAML以数据为中心,使用空白,缩进,分行组织数据,从而使得表示更加简洁易读。
1.创建config.yaml
内容如下:
app: api env: dev https: true nginx: port: 443 logPath: "/var/log//nginx/nginx.log" path: "/opt/nginx/"
2.创建config/config.go
内容如下:
import (
"fmt"
"gopkg.in/yaml.v2"
"io/ioutil"
"montitor/global"
)
func GetConfig() {
config, err := ioutil.ReadFile("config.yaml") ##读取yaml文件信息
if err != nil {
fmt.Print(err)
}
yaml.Unmarshal(config, &global.CONFIG)
}
3.创建global/global.go
内容如下:
package global
//Nginx nginx 配置
type Nginx struct {
Port int `yaml:"port"`
LogPath string `yaml:"logPath"`
Path string `yaml:"path"`
}
//Config 系统配置配置
type Config struct {
Env string `yaml:"env"`
App string `yaml:"app"`
SiteNginx Nginx `yaml:"nginx"`
}
###全局变量
var (
CONFIG = new(Config)
)
4.main.go
package main
import (
"fmt"
"montitor/config"
"montitor/global"
)
func main() {
config.GetConfig()
fmt.Println(global.CONFIG.Env)
fmt.Println(global.CONFIG.App)
fmt.Println(global.CONFIG.SiteNginx.Port)
fmt.Println(global.CONFIG.SiteNginx.LogPath)
fmt.Println(global.CONFIG.SiteNginx.Path)
}
5.go run main.go
dev
api
443
/var/log//nginx/nginx.log
/opt/nginx/

浙公网安备 33010602011771号