GO导入包报错以及GoLand设置GOPATH的示例分析
本篇文章给大家分享的是有关GO导入包报错以及GoLand设置GOPATH的示例分析,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
go,边写边尝试,在导入包那块,需要注意的小点还不少,特此总结。
首先给出一份我实践成功的案例,然后再总结注意的点.
go version go1.16.2 darwin/amd64
目录结构
main.go
package mainimport testPackage "test"func main() { testPackage.Test()}
TestPackage.go
package testPackageimport "fmt"func Test () { fmt.Println("test_success")}
我的GOPATH设置的是到go_practice这一层。
关于GOPATH,我参考了这篇文章。http://c.biancheng.net/view/88.html
快速查看可以使用命令(macOS和linux)
go env | grep GOPATH
我使用的是GoLand,就没有去修改env。 GoLand可以直接设置当前项目的GOPATH,支持多个。
可以分别设置全局和当前项目。
GOPATH之外,还需要注意:
import后面,双引号中的,其实是包所在的文件夹名称(可以直接引用GOPATH目录下src下的文件夹),而非文件中定义的package名(package testPackage)。
双引号前边的是自定的名字,也不必须是package名,例如我将main文件改为"haha",也一样可以成功:
package mainimport haha "test"func main() { haha.Test()}
所以其实文件中的package定义的包名,只是需要同一个文件夹下所有文件保持一致,包名和文件夹名称并不是强制要求统一的。
不过统一起来会更方便,可以直接通过包名调用方法,不再需要起别名。
package mainimport "test"func main() { test.Test()}
package testimport "fmt"func Test () { fmt.Println("test_success")}
另外,GoLand是可以自动补全的。像这样
被导入的包的函数名首字母大写才能被外部调用(public声明)。
以上就是GO导入包报错以及GoLand设置GOPATH的示例分析,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。