|--bin|--pkg|--src
其中,bin存放编译后的可执行文件;pkg存放编译后的包文件;src存放项目源文件。一般,bin和pkg目录可以不创建,go命令会自动创建(如 go install),只需要创建src目录即可。
对于pkg目录,pkg中的文件是Go编译生成的,而不是手动放进去的。(一般文件后缀.a) 对于src目录,存放源文件,Go中源文件以包(package)的形式组织。通常,新建一个包就在src目录中新建一个文件夹。test|-- install`-- src |-- config | `-- config.go `-- test `-- main.go
注意,config.go中的package名称必须最好和目录config一致,而文件名可以随便。main.go表示main包,文件名建议为main.go。
(注:不 一致时,生成的.a文件名和目录名一致,这样,在import 时,应该是目录名,而引用包时,需要包名。例如:目录为myconfig,包名为config,则生产的静态包文件是:myconfig.a,引用该 包:import “myconfig”,使用包中成员:config.LoadConfig())
config.go和main.go的代码如下:
config.go代码package configfunc LoadConfig() {}
main.go代码
package mainimport ( "config" "fmt")func main() { config.LoadConfig() fmt.Println("Hello, GO!")}
接下来,在项目根目录执行./install
这时候的目录结构为:
test|-- bin| `-- test|-- install|-- pkg| `-- linux_amd64| `-- config.a`-- src |-- config | `-- config.go `-- test `-- main.go(linux_amd64表示我使用的操作系统和架构,你的可能不一样)
其中config.a是包config编译后生成的;bin/test是生成的二进制文件
这个时候可以执行:bin/test了。会输出:Hello, GO!