go语言开发环境安装

go语言开发环境安装

0. 系统环境

本章均在Ubuntu系统下完成,未使用虚拟机。
Ubuntu版本为18.04.5LTS,为64位系统,电脑处理器为i7。

1. 安装vscode

进入官网直接下载:

https://code.visualstudio.com/Download

1

然后安装,最基本的方式是命令行,这部分可以参考网上教程,但现在Ubuntu 18已经提供Ubuntu Software,支持傻瓜式安装了:

  • 直接打开安装包,点击install,等待安装完毕即可

2

2. 安装golang

1.命令行安装

sudo apt-get install golang
sudo apt-get install golang-go

2.查看安装情况

go version

输出

go version go1.10.4 linux/amd64

基本可以认为安装成功。

3. 配置相关

1.创建工作空间

mkdir $HOME/gowork

2.配置环境变量

gedit ~/.profile

在gedit打开的文件中添加:

export GOPATH=$HOME/gowork
export PATH=$PATH:$GOPATH/bin

令配置环境生效

source $HOME/.profile

运行输出如下,主要查看GOPATH和GOROOT两项是否添加:
3
可见上述两项均添加了想要添加的路径;

4. helloworld的开始

1.创建代码目录

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

注意:其实只需在工作空间($GOPATH)中创建即可,但笔者参考了部分教程,如此创建可以方便后续与github相关的管理,该路径并不是必要的。
-p用于直接创建所有需要的目录。

2.在vscode中创建并打开hello.go

code /home/nonoli/gowork/src/github.com/LEEzanhui/hello/hello.go

3.开始编程

package main

import "fmt"

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

4.运行
先进入到hello.go的目录,再运行指令:

go run hello.go

4

5. 相关工具和插件的安装

安装git

1.安装git

sudo apt-get install git

2.检查git是否已经安装,输入git version命令即可,如果没有显示版本号表示没有安装git

3.配置git全局环境

git config --global user.name "用户名"
git config --global user.email "邮箱地址"

安装go相关的工具

  • 在此处遇到很多问题,最后成功克服

vscode中安装GO插件后提示要安装一系列依赖包,但安装中有些失败了,原因是相关网址无法访问😓
依照作业安排那里的教程进行

mkdir $GOPATH/src/golang.org/x/
go get -d github.com/golang/tools

然后就报错了,但这是在github上的镜像,所以解决方法很简单,直接clone;

//进入相应目录后
git clone https://github.com/golang/tools.git tools

接下来,执行go install命令安装

go install github.com/ramya-rao-a/go-outline
go install github.com/acroca/go-symbols
go install golang.org/x/tools/cmd/guru
go install golang.org/x/tools/cmd/gorename
go install github.com/josharian/impl
go install github.com/rogpeppe/godef
go install github.com/sqs/goreturns
go install github.com/golang/lint/golint
go install github.com/cweill/gotests/gotests
// 以下省略若干

如果需要看自己还有哪些未安装,可以用vscode打开.go文件,在右下角可以看到明显的警告analysis tool missing点击(或者它自己弹出提示)都可以查看自己缺失哪些依赖包。

但安装中仍然出现了问题:
安装goreturns时报错
5
分析报错的核心是少了mod,解决如下:

cd $GOPATH/src/golang.org/x
git clone https://github.com/golang/mod.git
git clone https://github.com/golang/xerrors.git
//完成后再安装依赖包
go install github.com/sqs/goreturns
//success

查看工作空间的目录结构
7

可以成功运行
6

6. go tour

注意:时代变了,gotour现在的具体用法可以参考github的README;

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

报错:

package golang.org/x/net/websocket: unrecognized import path "golang.org/x/net/websocket" (https fetch: Get https://golang.org/x/net/websocket?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)

观察报错部分,少了net;
少了什么装什么😂:

cd $GOPATH/src/golang.org/x/
git clone https://github.com/golang/net.git net
go install net
//安装了缺失的依赖包
go get -u github.com/Go-zh/tour

在工作空间的 bin 目录中有一个可离线执行的 tour 文件。
运行tour,可在浏览器中打开一网页(本身是离线的);
8

gotour的具体内容不是实验内容,不在此处展示;

7. 第一个包与测试

编写一个包并运行

根据官方文档编写包:
准备工作

mkdir /home/nonoli/gowork/src/github.com/LEEzanhui/stringutil
cd /home/nonoli/gowork/src/github.com/LEEzanhui/stringutil
touch reverse.go
code reverse.go
//在vscode中进行编程

编程
stringutil.go

// Package stringutil include some fun about string
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)
}

hello.go

package main

import (
	"fmt"

	"github.com/LEEzanhui/stringutil"
)

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

有趣的是,go对于程序的注释也提出了要求,不写或格式不对都会警告;

运行该程序
9

查看文件结构
10
如文档中所说的,go install将stringutil.a对象放在pkg/linux_amd64目录中。

测试

准备工作

通过创建一个名字以 _test.go 结尾的,包含名为 TestXXX 且签名为 func (t *testing.T) 函数的文件来编写测试

touch /home/nonoli/gowork/src/github.com/LEEzanhui/stringutil/reverse_test.go
// 新建该文件
code /home/nonoli/gowork/src/github.com/LEEzanhui/stringutil/reverse_test.go
// vscode中打开

编程

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/LEEzanhui/stringutil/

11

成功完成测试

8. 安装要点小结

  • 提前配置好并熟练使用git,因为网络原因,许多关键组件需要通过github获取,而git可以轻松完成该工作;
  • 不要盲目照搬网上教程,由于更新,许多教程中的细节已经不符合现在的情况,遇到问题可以考虑直接访问相关网站(如github的那个仓库),看看readme和issue;
  • 安装方面为主要难点,可以多参考多方的教程;
  • 编程方面依据官方文档一步步进行即可,推荐vscode中进行编程,功能全面、提示到位;

9. 额外的博客链接

利用gitee来实现图床功能

全文完

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值