如何安装本地Go Tour教程(或者叫A Tour of Go离线版),以及中文版安装不了该怎么办

Go 官方是有一个在线教程 A Tour of Go,可以在线学习 Go 的编程,并且有中文版。英文原版页面如下:

出人意料的是,Go 提供了离线版(各个语言都有),下载安装之后就可以在本地编译运行查看结果,不用联网使用远程服务器,这样提高了效率和性能(关于这方面的详细内容后面会单独有一节对比的)。

安装离线版前的准备

安装离线版之前,首先你需要在本地安装 Go,因为编译是在本地进行的。其次需要准备一个工作空间,用来存放下载的模块和源代码,以及编译后的二进制执行文件。

安装 Go

安装 Go 就不多说了,你使用软件包管理工具直接安装也好,官网下载(https://go.dev/dl/)使用 GUI 安装器安装也好,都很容易。

设置工作空间(worksapce)

重点是工作空间的准备。Go 一般都会有一个工作空间(现在不是必需的,早期是必需的),本质就是一个目录,这样可以很好的管理各种包、模块、源代码、编译后的二进制可执行文件。Go 通过环境变量GOPATH来找到工作空间。

工作空间的结构一般如下:
如何安装本地Go Tour教程(或者叫A Tour of Go离线版),以及中文版安装不了该怎么办_第1张图片

其中一般会有三个目录:

  • bin:存放构建的二进制执行文件;
  • pkg:存放的是一些模块、包;
  • src:存放 Go 源代码。

所以可以在你想要的地方创建这个目录和其中三个目录:

$ mkdir workspace
$ cd workspace
$ mkdir bin pkg src

然后在你的 Shell 配置文件(例如.bashrc.bash_profile.zshenv)中添加下面的命令,来设置环境变量GOPATH(后面的地址需要根据自己的情况修改):

export GOPATH=~/Desktop/go

然后重启终端或者使用source 配置文件来更新环境变量。

温馨提示

在安装离线版之前,需要说明一下:尽量安装英文原版,然后使用浏览器机翻。其他语言版本更新频率比较不理想,会导致出现一些问题。

比如说如果你去中文版的源码(https://github.com/Go-zh/tour)看,里面说么安装方法是:

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

go get已经被废弃了,错误信息会提示使用go install,英文版是更新过的。中文版正确的安装方法是:

$ go install github.com/Go-zh/tour@latest

而且中文版很久没有更新了,使用的时候可能会有些问题。如果你英文不是很好,建议使用英文版加浏览器的机翻也够用。

如果你安装了中文版发现运行不了,这时候再安装英文原版却提示已安装什么的,这时候需要手动删除bin目录下的tour可执行文件,然后使用go clean -modcache清理模块缓存,这时候再安装即可。当然如果你的这些目录里本来就是空的,那么可以删干净再重新安装。

安装离线版

如果你按照之前的内容设置了GOPATH和工作空间,那么接下来就很简单。在终端中输入(不用在意当前工作目录,因为会自动安装到GOPATH的目录中):

$ go install golang.org/x/website/tour@latest

最后的@latest表示安装最新版本,如果你要安装特定版本,那么将latest更改成版本号即可。

如果你遇到了“Request Refused”之类的错误,那么在确定输入地址没有错误的情况下,稍等一会再试试看,有时候网络问题也会导致请求被拒绝。如果一直不行可以尝试更改 DNS 或者其他方法。

使用离线版

完成安装之后,进入工作空间中的bin目录,会看到一个名为tour的可执行文件:

$ cd $GOPATH/bin
$ ls
tour

运行该可执行文件即可在本地运行 A Tour of Go,会自动在默认浏览器中打开网页http://127.0.0.1:3999/basics/1,如下:

运行速度和本地用go run跑速度差不多,除了初次可能会稍慢一些。

在线版和离线版的性能区别

如果网速好的话,二者在使用的时候几乎没有太大的区别。

比如说使用快速排序排列 35 个整数并且进行输出,二者速度几乎一样(左侧为离线版,右侧为在线版):
如何安装本地Go Tour教程(或者叫A Tour of Go离线版),以及中文版安装不了该怎么办_第2张图片

虽然本地版和在线版二者都有 CPU 使用时间和内存大小限制,但是本地版要比在线版本宽松多了。

比如说把数组扩大到 2000 个整数的时候,离线版需要 36 秒左右跑完,在线版会在 6 秒左右的时候显示timeout running program,而本地使用go run为 35 秒左右(使用编译后的可执行程序运行为 31 秒左右)。

希望能帮到有需要的人~

你可能感兴趣的:(软件/程序教程,golang)