PATH配置&&GO命令
PATH
一个是 go的安装path ——GOROOT。
一个是 go的工作目录path —GOPATH。此PATH的目的是方便使用go命令操作编译安装。
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
export GOPATH=/Users/didi/GoProject
export PATH=$PATH:$GOPATH/bin
比如现在的工作目录GoProject结构是
├── bin
├── pkg
└── src
└── github.com
└── wangziwei
└── hello
└── helloworld.go
那么直接运行 go install github.com/wangziwei/hello/ 则直接生成了二进制可执行文件hello 到 bin下。运行后目录结构如下:
├── bin
│ └── hello
├── pkg
└── src
└── github.com
└── wangziwei
└── hello
└── helloworld.go
注意一点是:
生成可执行的文件 得有main() 函数 + go install 命令 + 文件中 package main。
(如下:test.go 中 package main)
生成包对象 不需要main() + go install 命令 + 文件中 package 写路径。
(如下:helloworld.go 中 package hello)
go install github.com/wangziwei/hello 编译后 pkg 目录出现hello对象 hello.a。
go install github.com/wangziwei/test 执行后 bin 目录出现test 可执行文件。
├── bin
│ └── test
├── pkg
│ └── darwin_amd64
│ └── github.com
│ └── wangziwei
│ └── hello.a
└── src
└── github.com
└── wangziwei
├── hello
│ └── helloworld.go
└── test
└── test.go
Go的可执行命令是静态链接的;在运行Go程序时,包对象无需存在。
链接成单个二进制文件的所有包,其包名无需是唯一的,只有导入路径(它们的完整文件名) 才是唯一的。
GO测试
- 测试文件和需要测试的包文件放一个路径下
- 测试文件 命名格式为 *_test.go
└── src
└── github.com
└── wangziwei
├── hello
│ ├── helloworld.go
│ └── helloworld_test.go
- import testing + (t *testing.T)参数 + t.Errorf 显示
package hello
import "testing"
func TestReverse(t *testing.T) {
cases := []struct {
in, want string
}{
{"Hello, world", "dlrow ,olleH"},
{"Hello, 世界", "界世 ,olleH"},
{"", ""},
}
for _, c := range cases {
got := PrintHello(c.in)
if got != c.want {
t.Errorf("Reverse(%q) == %q, want %q", c.in, got, c.want)
}
}
}
- 最后执行 go test github.com/wangziwei/hello 就可以看测试结果了
go 工具使用远程代码库
go 包注释
每个包都应包含一段包注释,即放置在包子句前的一个块注释。对于包含多个文件的包, 包注释只需出现在其中的任一文件中即可。
godoc是一个专门的web服务器。提取注释文字的。
网友评论