跟着老猫一起来学GO,环境搭建
老猫的GO学习系列博客已经正式发车了,相信大家以前学习一门编程语言的时候也有经验,咱们一般都是从环境开始,在此呢,大家也跟着老猫从最开始的搭建环境开始。
GO语言的安装
首先呢,我们开始需要下载GO语言的安装包。GO国外的官网地址是https://golang.org/,当然这个仅限于有条件的小伙伴去官网下载了。我们一般下载呢都有所限制,不过没关系,在国内其实也有对应的网站为https://golang.google.cn/。还有一个网站中也可以下载,差不多是一个GO语言的学习社区,地址为https://studygolang.com/dl。比较推荐后者,相关的中文英文文档也是比较全的。访问https://studygolang.com/dl打开是这样的:
大家根据自己的环境,选择对应的安装包一步步安装即可。这个太简单了,就不展开了。
安装完毕之后,大家在命令行运行go version命令得到相关的版本信息,那么就安装完成了。老猫由于之前就已经安装过了,目前不是那个最新的版本,所以安装完毕之后的版本信息如下。
国内镜像的配置
关于go环境搭建的过程中比较重要的一点是镜像的配置,大家输入命令go env 可以看到相关go 语言的环境的一些配置。
goproxy设置
老猫当前的计算机环境是windows,所以看到的信息如上,上面有一个比较重要的属性信息叫做goproxy,老猫目前的设置是https://goproxy.cn,direct,大家安装完毕之后默认的地址应该是https://proxy/golang.org,direct。那么这个配置到底是做什么的呢?其实很简单,可以类比maven,这个其实也是一个依赖,配置这个代理信息之后,就会从远程的仓库拉取相关的go所需要依赖。后面的direct表示如果前者不能提供所需要的依赖那么我们可以重新从其他第三方获取依赖,比如配置成某github的依赖。
大家如果网络上没有条件的话,配置成默认的地址应该是无法拉取相关的依赖的,所以在此呢,最好配置成我们国内的镜像。
老猫配置国内镜像其实主要参考这个网址:https://goproxy.cn/,打开之后,上面有详细的设置命名的,大家照着上面设置即可,当然这里有个坑点就是咱们的go的版本号必须是1.13以上,当然如果是下载的最新安装包的小伙伴其实是没有这个问题的。
GO111MODULE设置
上面的截图中我们其实还看到一个比较重要的属性,就是GO111MODULE,老猫查询了其他的一些资料。
在go1.11版本以前,想要对GO语言进行包管理,只能依赖第三方的库进行实现,比如Vendor,GoDep等等。但是在这之后,我们就可以根据这个开关来实现包管理。
GO111MODULE这个开启或者关闭主要有三个值可以选择:off、on 、auto,默认值是个“”,其实也就是auto。
- GO111MODULE=off 无模块支持,go会从GOPATH和vendor文件寻找包。
- GO111MODULE=on 模块支持,go会忽略gopath和vendor文件夹,只根据go.mod下载依赖。
- GO111MODULE=auto在$GOPATH/SRC外面且根目录有go.mod文件时开启模块支持。
以上这些描述其实听下来感觉是一知半解的样子,在此其实也不用过多去纠结,因为在后面深入的过程中,我们就会慢慢领会了。当然后续老猫在和大家分享“依赖管理”的时候会和大家深入地去探讨一下。在此呢,我们将其属性设置成on。设置的命令上面也有。比较需要注意的是,在设置的时候大家需要设置成小写的on才行,不要手误操作错了。
开发工具配置
上面介绍了相关go环境的配置其实到此已经OK了,那么下面咱们就可以挑选一个比较趁手的工具开始配置完之后撸代码了。其实go相关的开发工具有很多,比如vi,emacs,idea,eclipse,vscode,sublime..+go插件。当然IDE系列的也有goland的,大家也可以去官网进行下载。老猫接下来会其中一种开发工具,IDEA+GO插件的方式,由于老猫是JAVA后端,用惯了IDEA,所以在此也就先介绍这款配置。当然其他开发工具的相关配置,大家可以自行去度娘或者谷歌去找一下。
idea插件推荐
第一个插件当然是go插件,具体如下:
这是老猫本地的环境,已经安装完毕了。
另外一个插件是File Watcher,大家可以自行像上面那样搜索之后进行install。这个工具其实是一个自动格式化的工具,当我们保存文件的时候就会按照GO语言的标准进行格式化了。
安装完毕之后我们重启IDEA,然后建立一个GO项目,来写一个GO版本的HELLO WORLD。具体如下
我们需要建立一个GO MODULE的项目,此处有个主意点就是proxy的时候,它默认会是default,我们将其改成https://goproxy.cn,direct即可,当然这个路径就是我们上面所配置的代理。由于项目暂时不涉及SQL,所以我们直接下一步并且取名完成即可。
大家可以看一下老猫的项目。
注意点,这里进行new文件的时候,选择simpleApplication类型的,点击运行,砸门的helloworld就显示在控制台上了。
上面老猫说的file watcher插件目前是不生效的,其实我们还要进行设置一下,具体设置如下。
首先我们需要将该设置去除。
然后咱们重新搜索file watcher选中之后点击+号,添加goimports插件,如果说没有看到goimports插件,大家切换到命令行输入:go get -v golang.org/x/tools/cmd/goimports即可。
像老猫这样添加完毕之后,然后重启IDEA即可。怎么进行验证安装成功了呢,其实很简单,只要在后面的括号前面加上一个空格,然后保存一下就能看到效果了。
写在本章最后
跟着老猫做完这些,其实大家就已经可以运行出hello world了。后面老猫会慢慢和大家介绍相关GO语言的语法、容器等等。别掉队哦!当然有什么疑问也欢迎大家关注老猫的公众号“程序员老猫”。大家一起探讨,一起进步。
跟着老猫一起来学GO,环境搭建的更多相关文章
- 跟着老猫来搞GO,集跬步而致千里
上次博客中,老猫已经和大家同步了如何搭建相关的GO语言的开发环境,相信在车上的小伙伴应该都已经搞定了环境了.那么本篇开始,我们就来熟悉GO语言的基础语法.本篇搞定之后,其实期待大家可以和老猫一样,能够 ...
- 跟着老猫来搞GO,基础进阶
回顾一下上一篇博客,主要是和大家分享了GO语言的基础语法,其中包含变量定义,基本类型,条件语句,循环语句.那本篇呢就开始和大家同步一下GO语言基础的进阶. 函数的定义 上次其实在很多的DEMO中已经写 ...
- 跟着老猫来搞GO-容器(1)
前期回顾 前面的一章主要和大家分享了GO语言的函数的定义,以及GO语言中的指针的简单用法,那么本章,老猫就和大家一起来学习一下GO语言中的容器. 数组 数组的定义 说到容器,大家有编程经验的肯定第一个 ...
- 跟着老猫来搞GO-内建容器Map
前期回顾 在上面的文章中,老猫和大家分享了GO语言中比较重要的两种数据结构,一种是数组,另外一种是基于数组的slice.本篇文章想要继续和大家分享剩下的容器以及字符字符串的处理. MAP map的定义 ...
- 跟着老猫来搞GO,"面向对象"
前言 之前和大家分享了容器以及相关的基础语法,以及函数,相信如果大家有接触过C++或者java的朋友都晓得面向对象,其实在GO语言中也存在面向对象,但是还是比较简单的,下面我们来看一下GO语言的&qu ...
- 跟着老王学Python
亲爱的朋友: 欢迎你!很高兴能在这里见到你,你能来到这里说明你真的很喜欢python,很想把python给学好!我觉的你很幸运,开始我学python的时候比较少资料,学起来也比较头疼,现在随着 ...
- python开发环境搭建及numpy基本属性-【老鱼学numpy】
目的 本节我们将介绍如何搭建python的开发环境以及numpy的基本属性,这样可以检验我们的numpy是否安装正确了. python开发环境的搭建 工欲善其事必先利其器,我用得比较顺手的是Intel ...
- (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
. . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...
- (四) 一起学 Unix 环境高级编程(APUE) 之 系统数据文件和信息
. . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...
随机推荐
- 你的 JVM 基础“大厦”稳健吗?
[从 1 开始学 JVM 系列] JVM 对于每位 Java 语言编程者来说无疑是"重中之重",尽管我们每天都在与它打交道,却很少来审视它.了解它,慢慢地,它成为了我们" ...
- Linux(一)——简介
aaa https://www.cnblogs.com/three-fighter/p/14644152.html#navigator
- DPDK应用示例指南简介(汇总)
DPDK应用示例指南简介 <DPDK示例>系列文章主要是学习.记录.翻译DPDK官方示例文档.为了更好地理解和学习DPDK, 特通过对源码中的经典示例进行整理,供大家学习.交流和讨论. A ...
- LVS+keepalived集群
一.Keepalived工具介绍专为LVS和HA设计的一款健康检查工具 支持故障自动切换(Failover) 支持节点健康状态检查(Health Checking) 官方网站:http://www.k ...
- java中各个类相互调用资源的原理
当我们要进行跨类的调用/使用的时候,比如当前类调用另一个类中的变量或方法时, 这时需要一定的条件,如果那些将要被调用的变量或方法是static(静态)变量,也叫类变 量,那么可以通过类名调用,相 ...
- goto语法在PHP中的使用
在C++.Java及很多语言中,都存在着一个神奇的语法,就是goto.顾名思义,它的使用是直接去到某个地方.从来代码的角度来说,也就是直接跳转到指定的地方.我们的PHP中也有这个功能,我们先来看看它是 ...
- C博客作业00--顺序分支结构
这个作业属于哪个班级 C语言--网络2011/2012 这个作业的地址 C博客作业00--顺序分支结构 这个作业的目标 初步认识C语法,掌握数据表达.printf.scanf语法及分支结构内容 0.展 ...
- 网站优化之mysql优化
一,网站优化之mysql优化:1.前缀索引,可以通过前缀去识别唯一性,把这个前缀作为索引内容,可以节省存储索引的空间,从而提高索引的查询速度.distinct 排重操作2,2.in条件索引使用同时查询 ...
- jmeter简单的压测案例——访问百度并发5,持续请求15
好记性不如烂笔头,还是记记吧. jmeter压测的指标有很多,先从简单的入手,下一章节再讲解jmeter组件的作用. 需求是:访问百度的压测指标是:10s内并发5,持续15次请求.那么需要设置以下几点 ...
- P3793-由乃救爷爷【分块,ST表】
正题 题目链接:https://www.luogu.com.cn/problem/P3793 题目大意 给出\(n\)个数字的一个序列\(m\)次询问区间最大值 保证数据随机 \(1\leq n,m\ ...