mirror of
https://github.com/unknwon/the-way-to-go_ZH_CN.git
synced 2025-11-13 09:16:10 +08:00
@@ -1,10 +1,10 @@
|
||||
# 9.8 自定义包的目录结构、go install 和 go test
|
||||
|
||||
为了示范,我们创建了一个名为 uc 的简单包,它含有一个 `UpperCase` 函数将字符串的所有字母转换为大写。当然这并不值得创建一个自定义包,同样的功能已被包含在 `strings` 包里,但是同样的技巧也可以应用在更复杂的包中。
|
||||
为了示范,我们创建了一个名为 `uc` 的简单包,它含有一个 `UpperCase` 函数将字符串的所有字母转换为大写。当然这并不值得创建一个自定义包,同样的功能已被包含在 `strings` 包里,但是同样的技巧也可以应用在更复杂的包中。
|
||||
|
||||
## 9.8.1 自定义包的目录结构
|
||||
|
||||
下面的结构给了你一个好的示范(uc 代表通用包名, 名字为粗体的代表目录,斜体代表可执行文件):
|
||||
下面的结构给了你一个好的示范(`uc` 代表通用包名, 名字为粗体的代表目录,斜体代表可执行文件):
|
||||
|
||||
/home/user/goprograms
|
||||
ucmain.go (uc 包主程序)
|
||||
@@ -24,7 +24,7 @@
|
||||
pkg/linux_amd64
|
||||
uc.a (包的目标文件)
|
||||
|
||||
将你的项目放在 goprograms 目录下(你可以创建一个环境变量 GOPATH,详见第 2.2/3 章节:在 .profile 和 .bashrc 文件中添加 `export GOPATH=/home/user/goprograms`),而你的项目将作为 src 的子目录。uc 包中的功能在 uc.go 中实现。
|
||||
将你的项目放在 goprograms 目录下(你可以创建一个环境变量 `GOPATH`,详见第 [2.2](02.2.md)/[3](02.3.md) 章节:在 `.profile` 和 `.bashrc` 文件中添加 `export GOPATH=/home/user/goprograms`),而你的项目将作为 `src` 的子目录。`uc` 包中的功能在 uc.go 中实现。
|
||||
|
||||
示例 9.6 [uc.go](examples/chapter_9/uc.go):
|
||||
|
||||
@@ -37,7 +37,7 @@ func UpperCase(str string) string {
|
||||
}
|
||||
```
|
||||
|
||||
包通常附带一个或多个测试文件,在这我们创建了一个 uc_test.go 文件,如第 9.8 节所述。
|
||||
包通常附带一个或多个测试文件,在这我们创建了一个 uc_test.go 文件,如[第 9.8 节](09.8.md)所述。
|
||||
|
||||
示例 9.7 [test.go](examples/chapter_9/test.go)
|
||||
|
||||
@@ -86,11 +86,11 @@ include $(GOROOT)/src/Make.pkg
|
||||
|
||||
这个包可以通过 go test 测试。
|
||||
|
||||
创建一个 uc.a 的测试文件在目录下,输出为 PASS 时测试通过。
|
||||
创建一个 uc.a 的测试文件在目录下,输出为 `PASS` 时测试通过。
|
||||
|
||||
在第 13.8 节我们将给出另外一个测试例子并进行深入研究。
|
||||
在[第 13.8 节](13.8.md)我们将给出另外一个测试例子并进行深入研究。
|
||||
|
||||
备注:有可能你当前的用户不具有足够的资格使用 go install(没有权限)。这种情况下,选择 root 用户 su。确保 Go 环境变量和 Go 源码路径也设置给 su,同样也适用你的普通用户(详见第 2.3 节)。
|
||||
备注:有可能你当前的用户不具有足够的资格使用 go install(没有权限)。这种情况下,选择 root 用户 su。确保 Go 环境变量和 Go 源码路径也设置给 su,同样也适用你的普通用户(详见[第 2.3 节](02.3.md))。
|
||||
|
||||
接下来我们创建主程序 ucmain.go:
|
||||
|
||||
@@ -141,7 +141,7 @@ include $(GOROOT)/src/Make.cmd
|
||||
如果我们想安装的包在系统上的其他 Go 程序中被使用,它一定要安装到 `$GOPATH` 下。
|
||||
这样做,在 .profile 和 .bashrc 中设置 `export GOPATH=/home/user/goprograms`。
|
||||
|
||||
然后执行 go install uc 将会复制包存档到 `$GOPATH/pkg/LINUX_AMD64/uc`。
|
||||
然后执行 `go install uc` 将会复制包存档到 `$GOPATH/pkg/LINUX_AMD64/uc`。
|
||||
|
||||
现在,uc 包可以通过 `import "uc"` 在任何 Go 程序中被引用。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user