在 Go 语言中,变量名,方法名都应该遵循驼峰命名法,不能出现下划线。这不是约定俗成,而是必须,因为这个访问权限息息相关。



变量名首字母的大小写很重要,大写 Name 可以被外部访问,小写 name 不可被外部访问,即 大写为公有变量,小写为私有变量

这是在结构体向 json 结构解析时发现的问题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package main

import (
"fmt"
"encoding/json"
)

type User struct {
Id int `json:"id"`
Name string `json:"name"`
}

func main() {
// 字符串解析为结构体
s := `{"id": 1, "name": "wxnacy"}`

var user User
json.Unmarshal([]byte(s), &user)
fmt.Println(user) // {1 wxnacy}
}

如果 IdName 变为小写,那 json 将无法将数据反解析 User 结构体。

03-16 18:27