为了账号安全,请及时绑定邮箱和手机立即绑定

无法解码 toml 文件

无法解码 toml 文件

Go
繁星点点滴滴 2022-12-19 10:41:04
我想从 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 接受)

您定义了DbPortas的类型,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是否为空并记录它。


查看完整回答
反对 回复 2022-12-19
  • 1 回答
  • 0 关注
  • 133 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号