回答

收藏

如何在 Go 中处理配置

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

我是 Go 编程新手,我想知道:处理 Go 程序配置参数的首选方法是什么(属性文件可以在其他上下文中使用或ini那种文件)?
) k0 c6 w$ s) n1 V  J                                                                7 F5 i! @" B/ w4 H
    解决方案:                                                                8 \7 j0 B; A  f7 V8 {
                                                                该JSON格式为我工作得很好。标准库提供了一种编写缩入数据结构的方法,因此具有很强的可读性。8 f( `1 J4 Y% @+ L% T
请参考此 golang-nuts 线程。
3 R6 W1 w" d$ f) H" @1 G% m8 mJSON 的优点是分析和人类可读/可编辑相当简单,为列表和映射提供语义(非常方便),而且很多 ini 配置分析器的类型并非如此。4 v& X  M- ^# }$ l
用法示例:. N3 q4 E3 H' E
conf.json    :1 c4 _; I/ O- C% {! u
    {    "Users": ["UserA","UserB"],   "Groups": ["GroupA"]}
    / x1 V7 ]8 e3 k4 N# `8 y9 K# F8 u
读取配置程序
5 c+ j/ a* c6 b3 K
    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]8 a1 Q7 ?$ ?: T0 s+ J0 l
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则