计算机网站建设维护的目的,专业建设网站公司哪家好,哪些网站做装修,做营销网站哪家好问题简介 go语言标准库汇总内置了对 json 文件的处理#xff0c;非常方便#xff0c;最近在写一个应用的时候#xff0c;需要从 json 文件中载入 配置#xff0c;由于是 go 新手#xff0c;忽略一个细节#xff0c;导致载入内容始终为空 代码演示 代码是最好的说明载体 p… 问题简介 go语言标准库汇总内置了对 json 文件的处理非常方便最近在写一个应用的时候需要从 json 文件中载入 配置由于是 go 新手忽略一个细节导致载入内容始终为空 代码演示 代码是最好的说明载体 package configtype config struct{a string json:ab string json:a
}
func Load(file string)(*config, error){c config{}file, err : os.Open(file)if err ! nil {//file open failed todo }jsonParser : json.NewDecoder(file)err jsonParser.Decode(c)//c 的值是多少
} 结论 看到上面的代码大家会觉着c 是否赋值成功了呢事实上不成功 json 文件解析成功但是最终赋值失败原因其实非常简单 go 不同包中的变量 函数 方法访问区分访问权限的就是 变量 函数 方法的首字母是否大写 如果是大写可以在其他包被访问 这个问题中json 包和 config 不是同一个包访问失败不能 set a b 必须改写为大写才可以赋值 思考 之所以 config 中的 filed 设置为小写 是想做访问控制如果坚持小写如何给 config 的 field 赋值