$ go install github.com/user/hello
对应的stringutil包会自动安装好 。
执行新的hello程序,可以看到消息已经被反转
# hello
Hello, Go!
完成上面操作之后 , 工作区应该为:
├── bin
│└── hello# command executable
├── pkg
│└── linux_amd64# this will reflect your OS and architecture
│└── github.com
│└── user
│└── stringutil.a# package object
└── src
└── github.com
└── user
├── hello
│└── hello.go# command source
└── stringutil
└── reverse.go# package source
注意:go install会把库文件stringutil.a放到pkg/linux_amd64下边(目录结构跟源代码结构一样) 。这样可以go命令可以直接找到对应的包对象,避免不必要的重复编译 。linux_amd64是为了根据操作系统和你的系统架构交叉编译 。
所有Go可执行程序都通过静态方式链接在一起,所以在运行时是不需要相关的包对象(库) 。
7、包命令
所有的Go源代码都以下面的语句开始:
package name
其中name就是包引用默认的名称,一个包中的所有文件必须使用同一个包名 , 可执行命令必须是main 。
一个二进制文件下所有的包名不需要唯一,但是引用路径必须唯一
8、测试
Go自带了一个轻量级的测试框架 , 由go test和testing包组成 。
可以通过新建xx_test.go写一个测试 , 其中包含若干个TestXXX函数 。测试框架会自动执行这些函数;如果函数中包含tError或t.Fail, 对应的测试会被判为失败 。
添加一个针对stringutil的测试文件$GOPATH/src/github.com/user/stringutil/reverse_test.go,包含以下内容:
package stringutil
import "testing"
func TestReverse(t *testing.T) {
cases := []struct {
in, want string
}{
{"Hello, world", "dlrow ,olleH"},
{"Hello, 世界", "界世,olleH"},
{"", ""},
}
for _, c := range cases {
got := Reverse(c.in)
if got != c.want {
t.Errorf("Reverse(%q) == %q, want %q", c.in, got, c.want)
}
}
}
#通过go test测试
# go test github.com/user/stringutil
okgithub.com/user/stringutil0.002s
#同样的,在包文件夹下可以忽略路径而直接执行go test
[root@zabbix stringutil]# go test
PASS
okgithub.com/user/stringutil0.002s
9、远程包
包的引用路径用来描述如何通过版本控制系统获取包的源代码 。go工具通过引用路径自动从远程代码仓库获取包文件 。比如本文中用的例子也对应的保存在github.com/golang/example下 。go可以通过包的代码仓库的url直接获取、生成、安装对应的包 。
[root@zabbix ~]# go get github.com/golang/example/hello
[root@zabbix ~]# $GOPATH/bin/hello
Hello, Go examples!
如果工作区中不存在对应的包,go会将对应的包放到GOPATH环境变量指明的工作区下 。(如果包已经存在,go跳过代码拉去而直接执行go install)
建议详细看一下这个 , 有图文
如何搭建go语言环境 linuxGo的三种安装方式
Go有多种安装方式,你可以选择自己喜欢的 。这里我们介绍三种最常见的安装方式:
Go源码安装:这是一种标准的软件安装方式 。对于经常使用Unix类系统的用户,尤其对于开发者来说,从源码安装可以自己定制 。
Go标准包安装:Go提供了方便的安装包,支持Windows、Linux、Mac等系统 。这种方式适合快速安装,可根据自己的系统位数下载好相应的安装包,一路next就可以轻松安装了 。**推荐这种方式**
第三方工具安装:目前有很多方便的第三方软件包工具 , 例如Ubuntu的apt-get、Mac的homebrew等 。这种安装方式适合那些熟悉相应系统的用户 。
推荐阅读
- 民间竞技体育游戏有哪些,民间竞技运动
- 关于孝感提升实训python编程的信息
- 苹果怎么加入安卓系统组件,苹果手机怎么弄安卓
- 仙果直播运营实习,直播运营实战
- 以下对c语言中的函数的 c语言函数中下列正确的说法是
- jquery怎么控制隐藏显示出来,jquery怎么控制隐藏显示出来的数据
- 游戏开发成都,成都手机游戏开发
- 区块链审计项目,区块链审计是什么意思
- python的内置函数6 Python的内置函数pow