go语言中main包是特殊的。
一般的包名是包含一些.go文件的目录名,如下图所示:

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

编译器会将同一目录下的不同.go文件视作同一个包。
但是main包的目录不是main目录,如果想在main包中添加函数建议写在main函数所在的.go文件中。
因为多个.go文件在main包下是无法相互调用的!!!
因为多个.go文件在main包下是无法相互调用的!!!
因为多个.go文件在main包下是无法相互调用的!!!
最好的方法是创建另一个包(如上图的hello包),由main函数调用,如下图所示:

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

hello.go中有sayHello()函数。

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

网友评论