golang使用embed包解析toml配置文件
时间: 2024-05-12 22:09:47 浏览: 264
使用Go 1.16版本中新增的embed包可以方便地将配置文件嵌入到Go二进制文件中,避免了在部署时需要将配置文件和二进制文件分开部署的麻烦。下面是一个使用embed包解析toml配置文件的例子:
```go
package main
import (
"embed"
"fmt"
"github.com/BurntSushi/toml"
)
// 定义一个结构体来存储配置文件中的数据
type Config struct {
Title string
DB struct {
Server string
Port int
Timeout int
}
}
//go:embed config.toml
var configData embed.FS
func main() {
// 读取嵌入在二进制文件中的配置文件
data, err := configData.ReadFile("config.toml")
if err != nil {
panic(err)
}
// 解析配置文件
var config Config
if _, err := toml.Decode(string(data), &config); err != nil {
panic(err)
}
// 输出配置文件中的数据
fmt.Printf("Title: %s\n", config.Title)
fmt.Printf("DB Server: %s\n", config.DB.Server)
fmt.Printf("DB Port: %d\n", config.DB.Port)
fmt.Printf("DB Timeout: %d\n", config.DB.Timeout)
}
```
在上面的例子中,我们使用了Go 1.16版本中新增的embed包将配置文件嵌入到了二进制文件中。然后使用embed包提供的ReadFile函数读取配置文件的内容,并使用BurntSushi/toml包解析配置文件。最后输出配置文件中的数据。
阅读全文