小编典典

如何在 Go 中处理配置

go

我是 Go 编程的新手,我想知道:处理 Go 程序的配置参数的首选方法是什么(在其他上下文中可能会使用属性文件或ini文件的那种东西)?


阅读 237

收藏
2021-10-29

共1个答案

小编典典

JSON格式为我工作得很好。标准库提供了编写缩进数据结构的方法,因此可读性很强。

另请参阅此 golang-nuts 线程

JSON 的好处是解析和人类可读/可编辑相当简单,同时为列表和映射提供语义(这可以变得非常方便),而许多 ini 类型的配置解析器则不是这种情况。

用法示例:

conf.json :

{
    "Users": ["UserA","UserB"],
    "Groups": ["GroupA"]
}

读取配置的程序

import (
    "encoding/json"
    "os"
    "fmt"
)

type Configuration struct {
    Users    []string
    Groups   []string
}

file, _ := os.Open("conf.json")
defer file.Close()
decoder := json.NewDecoder(file)
configuration := Configuration{}
err := decoder.Decode(&configuration)
if err != nil {
  fmt.Println("error:", err)
}
fmt.Println(configuration.Users) // output: [UserA, UserB]
2021-10-29