golang学习笔记八--Go自定义结构不能导入包?(GOPATH解密)

本文介绍了Go语言中的包概念和封装规则,并探讨了自定义结构体无法导入的问题,重点解析了GOPATH的含义及其在程序运行中的作用。作者通过分析发现,当GOPATH未设置时,Go会默认使用特定路径,只有在跨包调用时才会涉及到GOPATH的查找规则。最后,提供了解决问题的具体步骤,即调整目录结构并遵循Go的包组织规范。
摘要由CSDN通过智能技术生成

包的概念在很多编程语言都有,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程序,获取网络上拉取
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值