包
包的概念在很多编程语言都有,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语言中的包概念和封装规则,并探讨了自定义结构体无法导入的问题,重点解析了GOPATH的含义及其在程序运行中的作用。作者通过分析发现,当GOPATH未设置时,Go会默认使用特定路径,只有在跨包调用时才会涉及到GOPATH的查找规则。最后,提供了解决问题的具体步骤,即调整目录结构并遵循Go的包组织规范。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



