我想从 toml 文件中读取配置。会议/会议.tomldb_host = "127.0.0.1"db_port = 3306db_user = "root"db_password ="123456"conf/conf.go 文件package confimport ( "log" "github.com/BurntSushi/toml")type appcfg struct { DbHost string `toml:"db_host"` DbPort string `toml:"db_port"` DbUser string `toml:"db_user"` DbPassword string `toml:"db_password"`}var ( App *appcfg defConfig = "./conf/conf.toml")func init() { var err error App, err = initCfg() log.Println(App.DbHost)}func initCfg() (*appcfg, error) { app := &appcfg{} _, err := toml.DecodeFile(defConfig, &app) if err != nil { return nil, err } return app, nil}当我运行这个程序时,我收到一个我不知道如何修复的错误:恐慌:运行时错误:无效的内存地址或零指针取消引用
1 回答

MYYA
TA贡献1868条经验 获得超4个赞
(重新发布 Comin2021现在已删除的英文答案,因为它已被 OP 接受)
您定义了DbPort
as的类型,string
但它在您的配置文件中显示为整数。更改如下:
type appcfg struct {
DbHost string `toml:"db_host"`
DbPort int64 `toml:"db_port"` // change this
DbUser string `toml:"db_user"`
DbPassword string `toml:"db_password"`
}
还要检查initCfg第二个返回值err是否为空并记录它。
- 1 回答
- 0 关注
- 133 浏览
添加回答
举报
0/150
提交
取消