golang基础(31.类属性和方法的可见性)
在 Go 语言中,没有类似 PHP 和 Java 那种命名空间的概念,不过 Go 语言也是通过包来管理源代码的,包往往与文件系统的目录结构存在映射关系,Go 语言在寻找变量、函数、类属性及方法的时候,会先查看 GOPATH 这个系统环境变量,然后根据该变量配置的路径列表依次去对应路径下的 src 目录下根据包名查找对应的目录,如果对应目录存在,则再到该目录下查找对应的变量、函数、类属性和方法,因此我们可以把归属于同一个目录的文件看作归属于同一个包,归属同一个包的代码具备以下特性:
- 归属于同一个包的代码包声明语句要一致,即同一级目录的源文件必须属于同一个包;
- 在同一个包下不同的不同文件中不能重复声明同一个变量、函数和类;
另外,需要注意的是 main 函数作为程序的入口函数,只能存在于 main 包中,main 包通常对应 src 目录,但也可以将其它子目录声明为 main 包。