Ubuntu环境下安装VSCode以及Golang语言环境

1. 安装GOLANG

1.1 安装

打开Ubuntu系统,首先要安装Go语言。
打开GO语言官网,下载Linux版本安装包。官网链接
下载AMD64位版本,后续插件安装中有部分工具只能运行在64位版本中,因此需要Ubuntu和go都是64位版本的。
Ubuntu环境下安装VSCode以及Golang语言环境_第1张图片
点击linux-amd64版本即可开始下载,存储在Ubuntu系统中任意位置即可。
Ubuntu环境下安装VSCode以及Golang语言环境_第2张图片
Ubuntu环境下安装VSCode以及Golang语言环境_第3张图片
我将go的安装包放在了Download目录下,打开该目录,右键提取到此处。
Ubuntu环境下安装VSCode以及Golang语言环境_第4张图片
解压完成后,复制解压出的文件夹中GO文件夹,放置在你想要安装GO的地方。我把它放在了Document文件夹下。
Ubuntu环境下安装VSCode以及Golang语言环境_第5张图片
另外,在安装目录旁再创建一个文件夹,名称随意,我这里用的是gowork,用于存放Go的资源文件,即GOPATH路径。

1.2 环境配置

接下来我们进行GO的环境配置部分。
打开终端,输入以下代码,对profile文件进行编辑。

sudo vim /etc/profile

并在打开的文件中,输入以下代码,其中,GOROOT代表的是GO安装文件的存放位置,GOPATH放的是资源目录的位置,即上述我们新创建的文件夹。大家根据自己的存放位置进行调整。
另外还值得注意的是 GOARCH项一定得是amd64,如果是386,证明你安装的go语言是32位版本的,后续会报错。

export GOPATH=/home/roger/Documents/gowork
export GOROOT=/home/roger/Documents/go
export GOARCH=amd64
export GOOS=linux
export GOTOOLS=$GOROOT/pkg/tool
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

Ubuntu环境下安装VSCode以及Golang语言环境_第6张图片
编辑完成后,保存并退出。重启电脑以重新加载该文件。注意,要重启电脑,重启电脑,重启电脑,重要的事情讲三遍!
重启完成后,打开终端,输入:

go env

如果出现以下界面,即证明安装与环境配置成功。
Ubuntu环境下安装VSCode以及Golang语言环境_第7张图片

2. 安装VSCODE并配置工作区

至此,GO语言安装就已经完成了,接下来我们安装VSCode。
打开Ubuntu的应用商店,在搜索栏输入VSCode。
Ubuntu环境下安装VSCode以及Golang语言环境_第8张图片
第一个就是我们需要的VSCode,点击进入并下载安装。
Ubuntu环境下安装VSCode以及Golang语言环境_第9张图片
安装完成后,打开VSCode,在之前创建的gowork工作目录下,即GOPATH目录下,依次创建src/github.com/文件夹,再创建一个以自己的Github用户名为名的文件夹,我的用户名是Sclll,因此我创建了Sclll文件夹,之后的代码文件都将放在这个文件夹中。因为我想要写一个hello的测试文件,因此我又创建了一个hello目录。这个操作,在VSCode或者文件管理器中进行过都可以。
Ubuntu环境下安装VSCode以及Golang语言环境_第10张图片

3. 安装必要的工具和插件

然后,我们编写我们第一个代码。在VSCode中hello文件夹内创建一个hello.go文件。
创建完成后,VSCode的右下角会提示你安装GO语言的支持插件,点击安装进行安装。
安装完成后,又会提示你安装GO tools,可以点击安装,但是最终会失败。如图。
Ubuntu环境下安装VSCode以及Golang语言环境_第11张图片
因此需要进行手动安装。下面介绍手动安装的过程。
在GOPATH目录下,创建src/github.com/golang/文件夹,以及src/golang.org/x/文件夹。不存在的话可以手动创建每级目录。
打开终端,输入:

git clone github.com/golang/tools.git

使用该代码需要安装Git,如果未安装可以用apt-get获取一下。
Ubuntu环境下安装VSCode以及Golang语言环境_第12张图片
下载完成后,可以通过文件管理器将Github.com/golang下的tools文件夹复制到golang.org/x文件夹下。
随后,在终端中执行

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

执行完成,这个过程不会有任何提示,等待下一个可以输入的命令行出现时就表明完成了。
接下来我们再打开VSCode,会继续出现提示安装tools,这时候我们再进行安装,就会发现一片Success了。
Ubuntu环境下安装VSCode以及Golang语言环境_第13张图片
但是,最后还是会出点问题,就是golint插件,会提示安装不成功,那我们额外安装一下这个插件。
在终端中输入

git clone https://github.com/golang/lint.git

等待克隆完成。
Ubuntu环境下安装VSCode以及Golang语言环境_第14张图片
完成后,将克隆下来的lint文件夹复制到golang.org/x/文件夹中,并执行

go install golang.org/x/lint

即可完成安装,再打开VSCode就不会出现提示了。

4. 第一个hello world程序

在hello.go中输入以下代码:

package main

import "fmt"

func main() {
    fmt.Printf("hello, world\n")
}

点击VSCode的Debug栏,运行调试,即可看到输出。
Ubuntu环境下安装VSCode以及Golang语言环境_第15张图片

5. 安装与运行gotour

打开终端,执行

go get github.com/Go-zh/tour/gotour

如果不成功,可以用Git clone。

git clone https://github.com/Go-zh/tour

克隆完成后,定位到tour文件夹,执行

go install
tour

会发现跳出go tour的网页,即表明gotour安装成功。
Ubuntu环境下安装VSCode以及Golang语言环境_第16张图片

6. 编写第一个库

首先,在我们的github用户名目录下创建stringutil库目录。
并在目录中创建reverse.go文件。
输入以下代码:

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)
}

Ubuntu环境下安装VSCode以及Golang语言环境_第17张图片
保存后,修改hello.go文件。

package main

import (
	"fmt"

	"github.com/user/stringutil"
)

func main() {
	fmt.Printf(stringutil.Reverse("!oG ,olleH"))
}

在DEBUG中运行,可以看到正确的输出。
Ubuntu环境下安装VSCode以及Golang语言环境_第18张图片

7. 测试

在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 github.com/user/stringutil

即可看到测试结果。
Ubuntu环境下安装VSCode以及Golang语言环境_第19张图片

8. 实验总结与心得

本次实验花费了我较多的时间,主要是安装过程中有一个步骤弄错了。在配置profile文件的时候,默认拷贝了别人博客上的内容,将GOARCH的内容设置为了386,即32位版本的数值,导致后面VSCODE始终无法读取安装的工具。这个问题折腾了大概半天多的时间。期间查找了无数资料,均没有相关信息。这里我也想吐槽一点,网上发表的博客文章,同质化的问题太严重了,重复的内容写啊写,最后打开找到的都是一样的,很难获取有效信息。不过还好最终我发现了这个问题,并重新进行了配置。这个事情也警示了我,在查看别人提供的信息时,要进行理解,做自己的判断,盲目的复制粘贴,往往会出现一些莫名其妙的错误。

你可能感兴趣的:(服务计算,vscode,golang,go,环境配置,测试)