From c09657c5f3c8eb1b30681821901e13523ed74fef Mon Sep 17 00:00:00 2001 From: "rick.chan" Date: Fri, 22 Jan 2021 17:50:48 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20Golang=20=E7=9A=84?= =?UTF-8?q?=E5=91=BD=E5=90=8D=E8=A7=84=E8=8C=83=E5=8F=8A=E5=A4=A7=E5=B0=8F?= =?UTF-8?q?=E5=86=99=E7=9A=84=E8=AE=BF=E9=97=AE=E6=9D=83=E9=99=90.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: rick.chan --- .../Golang_的命名规范及大小写的访问权限.md | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 Software/Development/Language/Go/Basic/Golang_的命名规范及大小写的访问权限.md diff --git a/Software/Development/Language/Go/Basic/Golang_的命名规范及大小写的访问权限.md b/Software/Development/Language/Go/Basic/Golang_的命名规范及大小写的访问权限.md new file mode 100644 index 0000000..00fdc19 --- /dev/null +++ b/Software/Development/Language/Go/Basic/Golang_的命名规范及大小写的访问权限.md @@ -0,0 +1,23 @@ +# Golang 的命名规范及大小写的访问权限 + +1. golang 的命名需要使用驼峰命名法,且不能出现下划线 +2. golang 中根据首字母的大小写来确定可以访问的权限。无论是方法名、常量、变量名还是结构体的名称,如果首字母大写,则可以被其他的包访问;如果首字母小写,则只能在本包中使用。可以简单的理解成,首字母大写是公有的,首字母小写是私有的。 +3. 结构体中属性名的大写 + +如果属性名小写则在数据解析(如 json 解析 , 或将结构体作为请求或访问参数)时无法解析 + +```go +type User struct { + name string + age int +} + +func main() { + user:=User{"Tom",18} + if userJSON,err:=json.Marshal(user);err==nil{ + fmt.Println(string(userJSON)) // 数据无法解析 + } +} +``` + +如上面的例子,如果结构体中的字段名为小写,则无法数据解析。所以一般建议结构体中的字段大写