1. $GOPATH 环境变量的设置
针对我们 工作空间 的目录设置,如果我们只在 GoLand 中编码的话, 那就建议使用 Project GOPATH, 需要在其他 IDE 中 编码的话那就全局变量。
2. 项目目录的要求
我们摘取官方文档的说法:
Go代码必须放在工作空间 ( $GOPATH ) 内。它其实就是一个目录,其中包含三个子目录:
src
目录包含Go的源文件,它们被组织成包(每个目录都对应一个包),pkg
目录包含包对象,bin
目录包含可执行命令。
go
工具用于构建源码包,并将其生成的二进制文件安装到 pkg
和 bin
目录中。
src
子目录通常包会含多种版本控制的代码仓库 (例如Git或Mercurial), 以此来跟踪一个或多个源码包的开发。
我们所有的Go代码应该放在 src 目录下。
bin/
streak # 可执行命令
todo # 可执行命令
pkg/
linux_amd64/
code.google.com/p/goauth2/
oauth.a # 包对象
github.com/nf/todo/
task.a # 包对象
src/
code.google.com/p/goauth2/
.hg/ # mercurial 代码库元数据
oauth/
oauth.go # 包源码
oauth_test.go # 测试源码
github.com/nf/
streak/
.git/ # git 代码库元数据
oauth.go # 命令源码
streak.go # 命令源码
todo/
.git/ # git 代码库元数据
task/
task.go # 包源码
todo.go # 命令源码
3. 公共的参数和函数的要求
变量名, 函数名, 常量名首字母大写, 则可以被其他的包进行访问, 如果是小写, 则只能在本包中使用。
简单理解: 首字母大写就是公有的, 首字母小写是私有的。
下方代码 str 和 Str 并不会冲突, 依旧是两个变量。
因为在 Go 中, 严格区分字母大小写。
// 严格区分字母大小写
var str string = "私有变量"
var Str string = "公有变量"
func Add(a int, b int) int {
return a + b
}
4. 包的引用
注意我们的Go代码应该放在 src 目录下, 而 bin 和 pkg 是运行时生成的文件。
project/
bin/ # 可执行文件存放位置
main.exe
pkg/
windows_amd64/ # 包对象
module/
utils/
str-util.a
src/ # Go的源文件, 一个目录对应一个包
module/
main/
main.go
utils/
str-util.go
str-util.go
package utils
var Str string = "你好"
func Add(a, b int) int {
return a + b
}
main.go
package main
import (
"module/utils"
"fmt"
)
func main() {
fmt.Println(utils.Str)
fmt.Println(utils.Add(1, 2))
}