东林博客

Go 结构体大小写的坑之初体验

Go的结构体参数,不能用类似Java、PHP的public、protected、private 来区分,而是靠大小写区分的。

结构体方法函数首字母为大写,那么在别的包中也可以调用此方法,类似其他语言的public。

结构体方法函数首字母为小写,那么只能在本包调用此方法,类似其他语言的private。

当结构体的参数首字母为小写时,只能在当前包内使用。如:

把book 结构体修改为独立的包,在main 中引用,build报错:

提示在book包的Book结构体中找不到title字段和author字段。

因为book包的Book结构体的title参数和author参数是首字母小写的。修改为大写试试:

build 成功

不仅仅结构体的参数如此,结构体的方法也是这样的特性。

{{tip}}