如何将golang结构编码为TOML并使用BurntSushi/TOML库写入文件?

如何将golang结构编码为TOML并使用BurntSushi/TOML库写入文件?,go,toml,Go,Toml,使用BurntSushi/TOML库读取和解码TOML文件非常简单: var config//struct,它与TOML文件的结构匹配 如果,err:=toml.DecodeFile(“path/to/file.toml”,&config);呃!=零{ //无法读取和解码该文件 致命口蹄疫(错误) } //此时,config struct包含文件中的值 我想做相反的事情:取一个结构,将其编码为TOML并将其写入文件。没有单个函数可以编码并写入文件,因此您需要: 使用os.Create() 使用

使用BurntSushi/TOML库读取和解码TOML文件非常简单:

var config//struct,它与TOML文件的结构匹配
如果,err:=toml.DecodeFile(“path/to/file.toml”,&config);呃!=零{
//无法读取和解码该文件
致命口蹄疫(错误)
}
//此时,config struct包含文件中的值

我想做相反的事情:取一个结构,将其编码为TOML并将其写入文件。

没有单个函数可以编码并写入文件,因此您需要:

  • 使用
    os.Create()
  • 使用
    toml.Encoder.Encode()
  • 假设我们有一个struct
    config
    ,要以TOML格式写入文件:

    
    f、 err:=os.Create(“path/to/file.toml”)
    如果出错!=零{
    //无法创建/打开该文件
    log.Fatal(错误)
    }
    如果错误:=toml.NewEncoder(f).Encode(config);呃!=零{
    //编码失败
    log.Fatal(错误)
    }
    如果错误:=f.Close();呃!=零{
    //无法关闭该文件
    log.Fatal(错误)
    }
    
    应检查
    f.Close()
    的返回值,以确保文件写入成功。@TimCooper我已更新答案,以检查关闭文件时是否有错误。