2018-07-07——Go语言package踩坑

go语言中main包是特殊的。

一般的包名是包含一些.go文件的目录名,如下图所示:

main包

图中hello文件夹即为hello包。包内可包含一些.go文件,日下图所示:


2018-07-07——Go语言package踩坑_第1张图片
hello包

编译器会将同一目录下的不同.go文件视作同一个包。

但是main包的目录不是main目录,如果想在main包中添加函数建议写在main函数所在的.go文件中。
因为多个.go文件在main包下是无法相互调用的!!!
因为多个.go文件在main包下是无法相互调用的!!!
因为多个.go文件在main包下是无法相互调用的!!!

最好的方法是创建另一个包(如上图的hello包),由main函数调用,如下图所示:

2018-07-07——Go语言package踩坑_第2张图片
main函数调用hello包中的函数

go 里面一个目录为一个package, 一个package级别的func, type, 变量, 常量, 这个package下的所有文件里的代码都可以随意访问, 也不需要首字母大写,如下图:

2018-07-07——Go语言package踩坑_第3张图片
hello.go

hello.go中有sayHello()函数。
2018-07-07——Go语言package踩坑_第4张图片
testImport.go

testImport.go中的LOL()函数内,直接调用了sayHello()函数。
因为这两个.go文件存在于同一个hello包中,所以函数可以随意调用,首字母也不用大写。
因为这两个.go文件存在于同一个hello包中,所以函数可以随意调用,首字母也不用大写。
因为这两个.go文件存在于同一个hello包中,所以函数可以随意调用,首字母也不用大写。

我们看运行结果:


运行结果

你可能感兴趣的:(2018-07-07——Go语言package踩坑)