YAML 是 "YAML Ain't a Markup Language"(YAML 不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:"Yet Another Markup Language"(仍是一种标记语言)。YAML 的语法和其他高级语言类似,并且可以简单表达清单、散列表,标量等数据形态。它使用空白符号缩进和大量依赖外观的特色,特别适合用来表达或编辑数据结构、各种配置文件、倾印调试内容、文件大纲(例如:许多电子邮件标题格式和YAML非常接近)。YAML 的配置文件后缀为 .yml。
yaml文件:
./configs/config.yaml
app:
host: 127.0.0.1
port: 3003
jwtsecret: 123
adminuser:
username: admin
pwd: 123
cache:
host: 127.0.0.1
pwd: 123
port: 6379
select: 0
db:
database: nuxt-blog
dbtype: mysql
host: 127.0.0.1
port: 3306
user: root
pwd: 123
读取:
package configs
import (
"gopkg.in/yaml.v2"
"io/ioutil"
"os"
)
type Config struct {
App App
AdminUser AdminUser
Db Db
Cache Cache
}
type App struct {
Host string
Port int
JwtSecret string
}
type AdminUser struct {
UserName string
Pwd string
}
type Cache struct {
Host string
Pwd string
Port int
Select int
}
type Db struct {
Host string
Port int
User string
Pwd string
Database string
DbType string
}
var Configs *Config
func init() {
file, err := os.Open("./configs/config.yaml")
if err != nil {
panic(err)
}
bytes,err := ioutil.ReadAll(file)
if err != nil {
panic(err)
}
err = yaml.Unmarshal(bytes,&Configs)
if err != nil {
panic(err)
}
}