└── 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)
建议详细看一下这个,有图文
如何为Linux安装Go语言Go语言又称为golang , 是由Google最初开发的一种开源编程语言,其在设计时就遵循了简单、安全和速度的3大原则 。Go语言具有多种调试、测试、分析和代码审查工具,如今Go语言和工具已在大多数Linux发行版本的源库中进行提供,本文介绍如何为Linux安装Go语言 。
GO语言如何编译发布到Linux在命令行执行如下指令
SET CGO_ENABLED=0
SET GOOS=linux
SET GOARCH=amd64
go build main.go//开始编译程序
linux支持go语言吗的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux支持的编程语言、linux支持go语言吗的信息别忘了在本站进行查找喔 。
推荐阅读
- chatgpt写稿可以投稿吗,chest投稿
- phpcms的模板文件,php网站模板下载后怎么用
- 滕州政协公众号关注,滕州政协公众号关注网
- thinkphpcrm系统源码,thinkphp5源码解读
- c语言子函数互相调用 c语言子函数调用主函数数组
- 新媒体如何写共鸣,新媒体写作公式
- 用flutter的app,用flutter的人多吗
- C语言仅在函数中可见 c语言允许在函数中定义函数吗
- 包含postgresql9.6uuid的词条