如何安装本地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来找到工作空间。

工作空间的结构一般如下:
请添加图片描述

其中一般会有三个目录:

  • 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 个整数并且进行输出,二者速度几乎一样(左侧为离线版,右侧为在线版):
请添加图片描述

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

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

希望能帮到有需要的人~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/36901.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

阿里云AliYun物联网平台使用-设备添加以及模拟设备端上云

一、前言 上一篇文章提到,我们已经申请了免费的阿里云平台,下面需要将我们的设备在阿里云上进行注册和申请,以便于我们的数据上云。 二、步骤 注册产品(设备模型) 在产品页面,点击 "创建产品" 。…

Blender基础入门(2):Blender简单渲染

文章目录 我个人的Blender专栏前言渲染基本常识科普Blender渲染设置Blender窗口分栏分屏渲染 渲染设置GPU渲染引擎推荐最大采样 切换摄像机渲染图片渲染采样512和4096差异512采样4096采样 渲染建议 我个人的Blender专栏 Blender简单教学 前言 渲染是从白模到成品的过程&…

go 爬虫速度控制

go 爬虫速度控制 使用go语言用原生net/http写爬虫如何优雅的控制并发和请求速度控制并发限流并发和限流的区别简单说明有了并发控制为什么还要限流 最总代码 使用go语言用原生net/http写爬虫如何优雅的控制并发和请求速度 go程序的执行效率相对python要快的多,且占…

货币政策和汇率波动——使用Python进行量化分析

货币政策和汇率波动是国际贸易和投资中的重要问题,对于投资者来说具有重要的影响。本文将介绍如何使用Python进行量化分析,以揭示货币政策和汇率波动之间的关系。 一、货币政策与汇率波动 货币政策作为国家宏观调控的一种手段,对汇率波动具…

ELK-日志服务【logstash-安装与使用】

目录 【1】安装logstash logstash input 插件的作用与使用方式 【2】input --> stdin插件:从标准输入读取数据,从标准输出中输出内容 【3】input -- > file插件:从文件中读取数据 【4】input -- > beat插件:从filebe…

赛效:如何用在线压缩GIF图片

1:在电脑网页上打开并登录快改图,点击左侧菜单栏里的“GIF压缩”。 2:点击页面中间的上传按钮,将电脑本地的GIF文件上传上去。 3:GIF文件上传成功后,设置下方压缩设置,点击右下角“开始压缩”。…

学习记录——Transformer、ViT、Swin-Transformer、SegFormer、TopFormer、Seaformer

Transformer 2017 Computation and Language Google Self-Attention、Multi-Head Attention 位置编码 原理参考链接 ransformer网络结构: ViT 2020 ICLR 将transformer引入到cv领域 将输入图片224x224x3按照16x16x3大小的Patch进行划分,接着通过…

Prometheus监控Tongweb容器

🏅概述 JMX Exporter主要是利用Java的JMX机制来读取JVM运行时的一些数据,然后转化为Prometheus可读取的metrics格式的数据。 JMX Exporter有两种用法: 启动独立进程。通过RMI读取JVM数据,但是单独进程监控也存在问题。JVM进程内启…

告别固定字体大小:CSS使用相对单位提升网页可访问性和兼容性

在 Web 开发领域中,有很多误解流传,即使它们被反驳了很多次也仍然存在。"外部链接应该总是在新标签页中打开" 就是一个很好的例子。CSS Tricks 在将近十年前就对此进行了详细的解释(简而言之:大多数情况下是错误的&…

华为、阿里巴巴、字节跳动 100+ Python 面试问题总结(三)

系列文章目录 个人简介:机电专业在读研究生,CSDN内容合伙人,博主个人首页 Python面试专栏:《Python面试》此专栏面向准备面试的2024届毕业生。欢迎阅读,一起进步!🌟🌟🌟 …

R中高效安装包,以ComplexHeatmap包为例

包安装问题解决方案 1. Biocmanager安装 [2. 手动安装](正在更新……) 目录 包安装问题解决方案前言1. install.packages()的介绍1.1 install.packages()的工作原理1.2 install.packages()安装失败的原因1.3 解决方案 2. BiocManage安装ComplexHeatmap总…

Android 中利用多个Button组合实现选项切换效果

效果图&#xff1a; xml布局: <LinearLayoutandroid:orientation"horizontal"android:layout_width"match_parent"android:layout_height"50dp"android:gravity"center"android:background"color/White">​<Linear…

Django_Paginator分页器

目录 分页器代码说明 简单demo 源码等资料获取方法 分页器代码说明 import os import random # 需要导入分页器类from django.core.paginator import Paginator, EmptyPage# 导入配置django配置文件 os.environ.setdefault(DJANGO_SETTINGS_MODULE, dailyfresh.settings)it…

SSH 远程口令登录及免密登录

简介&#xff1a; SSH是一种网络协议,用于计算机之间的加密登录。如果一个用户从本地计算机使用SSH协议登录另一台计算机我们就可以认为这种登录时安全的&#xff0c;即使被中途截获,密码也不会泄露 安装 1.服务器安装OpenSSH(CentOS系统默认安装了openssh) 1.yum install op…

Linux 安装elasticsearch,kibana,Logstash

1、Elasticsearch 安装 cd /usr/localwget \ https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.7-linux-x86_64.tar.gz \ https://artifacts.elastic.co/downloads/kibana/kibana-7.17.7-linux-x86_64.tar.gz \ https://artifacts.elastic.co/downlo…

POLARDB IMCI 白皮书 云原生HTAP 数据库系统 一 列式数据是如何存储与处理的

开头还是介绍一下群&#xff0c;如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题&#xff0c;有需求都可以加群群内有各大数据库行业大咖&#xff0c;CTO&#xff0c;可以解决你的问题。加群请联系 liuaustin3 &#xff0c;在新加的朋友会分到2群&#xff08;共…

如何实现浏览器内多个标签页之间的通信?

1、使用 LocalStorage 特点&#xff1a;同域共享存储空间&#xff1b;持久化将数据存储在浏览器&#xff1b;提供事件监听storage变化 实现逻辑&#xff1a; A页面将数据存储在本地。B页面监听storage的变化&#xff0c;同步storage的最新数据&#xff1b; 好处&#xff1a;操…

探索MediaPipe的人像分割

MediaPipe是Google开源的计算机视觉处理框架&#xff0c;基于TensorFlow来训练模型。图像分割模块提供人像分割、头发分割、多类分割。本文主要探索如何实现人像分割&#xff0c;当然在人像分割基础上&#xff0c;我们可以做背景替换、背景模糊。 目录 一、配置参数与模型 1…

微擎后台getshell,低权限也可以

/web/index.php?csite&aeditor 这个文件可以编辑html&#xff0c;然后前台会解析成php 没测试最新版 比如编辑专题&#xff1a;/web/index.php?csite&aeditor&dopage&multiid0 上架抓包 改html内容为php 复制前台url 访问之 博客原文&#xff1a; 微擎后…

GEE入门学习,遥感云大数据分析、管理与可视化以及在林业应用丨灾害、水体与湿地领域应用丨GPT模型应用

目录 ①海量遥感数据处理与GEE云计算技术实践应用 ②GPT模型支持下的Python-GEE遥感云大数据分析、管理与可视化技术及多领域案例实践应用 ③GEE遥感云大数据林业应用典型案例实践及GPT模型应用 ④遥感云大数据在灾害、水体与湿地领域典型案例实践及GPT模型应用 ①海量遥感…