1、安装依赖

go get gopkg.in/yaml.v2

2、添加配置文件config.yaml

redis:
  port: 3306
  user: redis

mysql:
  userName: root
  passWord: mysql

3、编写go代码读取配置文件数据

注意:和yaml文件数据对应用来存储yaml数据的结构体内的字段首字母大写,否则经过 yaml.Unmarshal 转换后,无法通过 结构体名称.字段名 获取数据。

package main

import (
	"fmt"
	"gopkg.in/yaml.v2"
	"os"
)

type conf struct {
	Redis struct{
		Port int64 `yaml:"port"`
		User string `yaml:"user"`
	} `yaml:"redis"`
	Mysql struct {
		Username string `yaml:"userName"`
		Password string `yaml:"passWord"`
	} `yaml:"mysql"`
}

var ConfigData *conf

func loadConfig() error {
	config := new(conf)
	yamlFile,err := os.ReadFile("D:\\goland\\project\\src\\test\\2023\\2023-3-14\\config.yaml")
	if err != nil {
		return err
	}
	err = yaml.Unmarshal(yamlFile, config)
	if err != nil {
		return err
	}
	ConfigData = config
	return nil
}

func main() {

	err := loadConfig()
	if err != nil {
		fmt.Println(err)
		return
	}
	fmt.Println(ConfigData.Redis)
	fmt.Println("-----------------")
	fmt.Println(ConfigData.Mysql)
}

结果

{3306 redis}
-----------------
{root mysql}