第九章修改 (#841)

Co-authored-by: Joe Chen <jc@unknwon.io>
This commit is contained in:
Haigang Zhou
2022-05-11 02:04:17 +08:00
committed by GitHub
parent 30ca13a369
commit 471d59af32
11 changed files with 80 additions and 70 deletions

View File

@@ -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 程序中被引用。