GO每日一题(4)


下面这段代码输出什么

type People struct {
	name string `json:"name"`
}

func main() {
	js := `{
         "name":"11"
     }`
	var p People
	err := json.Unmarshal([]byte(js), &p)
	if err != nil {
		fmt.Println("err: ", err)
		return
	}
	fmt.Println("people: ", p)
}

答案

People: {}

解析:按照 go 的语法,小写开头的方法、属性或 struct 是私有的,同样,在 json 解码或转码的时候也无法实现私有属性的转换。

这段代码是无法正常得到 People 的 name 值的。而且,私有属性 name 也不应该加 json 的标签。


文章作者: Alex
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Alex !
  目录