ubuntu安装pr_ubuntu18.04 安装go语言开发环境

本文详细介绍了在Ubuntu 18.04上安装Go语言开发环境的步骤,包括查看系统Go版本、安装Go、创建工作目录、设置环境变量、编写并运行第一个Go程序、安装工具包、测试库和运行测试。通过这些步骤,你将能够成功搭建完整的Go开发环境。
摘要由CSDN通过智能技术生成

一、安装golang

首先查看系统上有没有go的版本

若没有go的版本,通过系统包安装

检查是否安装成功

(vscode后面会用到,同样可以通过系统库安装 sudo apt-get install code,这里不再赘述)

二、创建工作目录

在home目录下新建一个目录gopath(名字可以任意),在该目录下新建三个子目录:

src – 里面每一个子目录,就是一个包。包内是Go的源码文件

pkg – 编译后生成的包的目标文件

bin – 生成的可执行文件。

三、设置环境变量

编辑home目录下的.bashrc文件,在末尾添加以下内容:

(home/xumy/是我的home目录)

运行 source ~/.bashrc,使得以上的配置生效。

运行go env,检查以上配置是否生效。

四、编写第一个go语言程序hello.go

源文件应该放在工作目录的src文件夹下,在这下面可以创建自己的包路径,这里以github.com/github-user/hello为例,这相当于c++中的项目文件,所有与项目有关的代码都可以放在这里。

创建包路径:

mkdir $GOPATH/src/github.com/github-user/hello -p

在该目录下创建一个名字为hello.go的文件,文件内容如下:

package main

import "fmt"

func main() {

fmt.Printf("hello, world\n")

}

五、安装一些go的工具

首先在$GOPATH目录下创建子目录:

mkdir -p $GOPATH/src/golang.org/x/

参数-p的作用是当路径中的目录不存在时创建一个。

接着下载github镜像的tools目录的源码

go get -d github.com/golang/tools

然后将tools移动到第一步创建的目录下

cp $GOPATH/src/github.com/golang/tools $GOPATH/src/golang.org/x/ -rf

最后,安装工具包

go install golang.org/x/tools/go/buildutil

最最后,关闭vscode后重新打开,按照提示安装,会看到这样的结果:

大功告成,ready to go!

六、运行第一个程序

执行 go install github.com/github-user/hello

此命令会构建 hello 命令,产生一个可执行的二进制文件。 接着它会将该二进制文件作为 hello(在 Windows 下则为 hello.exe)安装到工作空间的 bin 目录中。 在我们的例子中为 $GOPATH/bin/hello,具体一点就是 $HOME/go/bin/hello。

注意一点,这条命令可以在任何路径下执行,go 工具会根据 GOPATH 指定的工作空间,在 github.com/user/hello 包内查找源码。

现在,我们可以在命令行下输入它的完整路径来运行它了:

$GOPATH/bin/hello

如果已经将 $GOPATH/bin 添加到 PATH 中了,只需输入该二进制文件名即可:

hello

到这里go的安装过程就结束了,以下内容是一些扩展。

七、安装与运行tour

(详情戳https://github.com/Go-zh/tour)

由于github下载太慢所以只能安装tour目录下的gotour,运行结果如下:

八、我的第一个库与测试

目标

我们要编写一个库,并让hello.go使用这个库中定义的方法。

库目录的创建与库内容编写

与编写一个程序类似,第一步要先给这个库创建一个包路径。

mkdir $GOPATH/src/github.com/github-user/stringutil

在此目录下新建一个文件reverse.go,文件内容如下:

// stringutil 包含有用于处理字符串的工具函数

package stringutil

//Reverse 将其实参字符串左右反转

func Reverse(s string) string {

r := []rune(s)

for i, j := 0, len(r) - 1; i < len(r) / 2; i, j = i + 1, j - 1 {

r[i], r[j] = r[j], r[i]

}

return string(r)

}

用 go build 命令来测试该包的编译:

go build github.com/user/stringutil

确认 stringutil 包构建完毕后,修改原来的 hello.go 文件(它位于 $GOPATH/src/github.com/github-user/hello)去使用它:

package main

import (

"fmt"

"github.com/github-user/stringutil"

)

func main() {

fmt.Printf(stringutil.Reverse("!oG ,olleH"))

}

最后,重新安装hello程序之后就可以运行了(go会自动安装所有hello程序依赖的东西,包括stringutil)

测试

go有一个轻量级的测试框架,你可以通过创建一个名字以 _test.go 结尾的,包含名为 TestXXX 且签名为 func (t *testing.T) 函数的文件来编写测试。 测试框架会运行每一个这样的函数;若该函数调用了像 t.Error 或 t.Fail 这样表示失败的函数,此测试即表示失败。

我们可通过创建文件 $GOPATH/src/github.com/github-user/stringutil/reverse_test.go 来为 stringutil 添加测试,其内容如下:

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 github.com/github-user/stringutil命令来运行该测试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值