回答

收藏

如何在 Go 中处理配置

技术问答 技术问答 440 人阅读 | 0 人回复 | 2023-09-12

我是 Go 编程新手,我想知道:处理 Go 程序配置参数的首选方法是什么(属性文件可以在其他上下文中使用或ini那种文件)?* [$ a+ v: r4 @1 `# f0 C
                                                               
4 N* L* J' D: E% j) k, R" s    解决方案:                                                               
) j: j; M1 e6 S/ J+ S( X/ {                                                                该JSON格式为我工作得很好。标准库提供了一种编写缩入数据结构的方法,因此具有很强的可读性。
1 K. M5 `, j! |. B4 \$ V请参考此 golang-nuts 线程。& x8 @5 k+ U  d1 X- r
JSON 的优点是分析和人类可读/可编辑相当简单,为列表和映射提供语义(非常方便),而且很多 ini 配置分析器的类型并非如此。& B* T2 V) `. u
用法示例:# H, h8 C; O0 y$ N: d: o
conf.json    :1 P! n7 i: w- l0 X7 s
    {    "Users": ["UserA","UserB"],   "Groups": ["GroupA"]}
    . I& u; Q) t4 `; R
读取配置程序' q. d3 e  \9 o% h! Z
    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]
    . E, x0 X* o" ^
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则