一、Go 的项目目录
$GOPATH/src$GOPATH/src$GOPATH/bin$GOPATH/pkg
一个Go工程中主要包含以下三个目录:
src:源代码文件
pkg:包文件
bin:二进制可执行文件
$GOPATH/src
1. 适合个人开发者
我们知道源代码都是存放在GOPATH的src目录下,那我们可以按照下图来组织我们的代码。
2. 目前流行的项目结构
Go语言中也是通过 包 来组织代码文件,我们可以引用别人的包也可以发布自己的包,但是为了防止不同包的项目名冲突,我们通常使用顶级域名来作为包名的前缀,这样就不担心项目名冲突的问题了。
因为不是每个个人开发者都拥有自己的顶级域名,所以目前流行的方式是使用个人的github用户名来区分不同的包。
举个例子:张三和李四都有一个名叫studygo的项目,那么这两个包的路径就会是:
import "github.com/zhangsan/studygo"
和
import "github.com/lisi/studygo"
以后我们从github上下载别人包的时候,如:
go get github.com/jmoiron/sqlx
src/github.com/jmoiron/sqlx
3. 适合企业开发者
二、Go 项目构建及编译(第一个 Go 程序)
学习语言的第一个程序肯定是 hello word 了。
package main // 声明 main 包,表明当前是一个可执行程序
import "fmt" // 导入内置 fmt
func main(){ // main函数,是程序执行的入口
fmt.Println("Hello World!") // 在终端打印 Hello World!
}
注意事项:
一个包目录中所有的 go 文件的 package 声明必须相同,所以 main 方法要单独放一个文件,否则在eclipse和liteide中都会报错;
例:假设 test 包中有个 main.go 和 mymath.go,其中 main.go 声明 package 为main,mymath.go声明 packag 为 test;
执行:go install test
报错:can’t load package: package test: found packages main (main.go) and test (mymath.go) in /home/wanjm/go/src/test
(报错说 不能加载package test(这是命令行的参数),因为发现了两个package,分别是main.go 和 mymath.go)