包
包的概念在很多编程语言都有,Go语言中包的概念还是挺有意思的.
- 一个目录下只有一个包
- 包的命名与目录可以不同(这点与Java不同)
- main包下有一个可执行入口,所以main方法只能在main包下执行
- go语言不以文件为基本单元,而是包为基本单元,一个结构体可以是不同文件的组合但必须在同一包下
封装
- 采用camelCase命名规则
- 大写为public
- 小写为private
不能导入自定义结构的包?
按照上述定义,我讲自己写的结构体与main分割开,使用不同的包,但发现竟然自定义结构却一直不能导包.
从编译器提示发现,自己写的tree.Node 后没有提示包名,而Go自带parse.Tree类后却有提示包名.所以猜测应该是Go环境问题.
GOPATH解密
- GOROOT与GOPATH有什么关系
GOROOT是GO的安装目录,就像Java安装完jdk后,需要配置环境变量才可以直接在命令行中输入java -version
有信息返回.
GO也一样,首先配置GO的环境变量也是为了方便我们在命名行中输入GO的命令.
GOPATH是GO的工作目录,也叫工作空间,使用命令行go env GOPATH
查看本机.GOPATH中可以编写我们自己写的程序,且在程序运行时,编译器会将其目录下的src下的所有GO文件加载到go运行虚拟机中.
--bin 通过src下go文件编译后
--src 自己写的go程序,获取网络上拉取