一、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)


参考链接