Go 是门开源语言,它能让构造一些简单、可靠且高效的软件变得容易。已经有越来越多的同行学习使用Go语言,也有逐步增长的趋势。在云原生,边缘计算以及后端开发都占有一席之地。一起抓住假期的小尾巴,所以晨希这里带伙伴们一起保姆式的搭建。坐稳了发车:
🎥 Go的简史
一看 Go的名字,你是不是猜到和 Google 有很紧密的联系了吧?没错的,Go确实是 Google 的亲儿子。
随着移动互联网带来的科技改变,现在服务器软件系统越来越庞大,程序都是由成千上万的程序员共同编写,源代码也以数百万行计,而且实际上还需要每天都进行更新,它鲜明特点开头也提到过。
但是随之带来严重的问题,即使你使用大型编译集群之上进行一次 build,时间周期也是不可被我们接受的。
那么它就出生了,作为一个标准的富二代,Go 语言一开始就赢在了人生的起跑线上。
它的诞生就是为了解决这样高难度的问题。而以往别的编程语言老前辈(JAVA:你干脆直接念我的身份证好了),都是有很严重的历史包袱,对于这种问题老一辈也是采用以迂回的方式处理,并不是迎头而上的解决方式。
Go语言就是在这样的环境下出现的。简单来说,Go语言作为后浪,就是要把前浪拍在沙滩上的!(其他语言大佬别打我,就是吹吹牛~)
Go 语言的创作者
既然 Go 语言拥有 Google 这么强大的背景,那它的创作者也肯定来头不小的,分别是:肯·汤普逊(Ken Thompson),罗布·派克(Rob Pike),以及 罗伯特·格瑞史莫(Robert Griesemer)。
可能读者对于他们的名字不是很熟悉,但是如果列举出来他们做了那些壮举,那肯定都是如雷贯耳,都是著名的 IT 工程师,编程界的咱们祖师爷:
肯·汤普逊(Ken Thompson)、罗布·派克(Rob Pike)、罗伯特·格瑞史莫(Robert Griesemer)这被称为是计算机领域「发明之父」所组成的黄金团队,他们对系统编程语言,操作系统和并行都有着非常深刻的见解。
Go资源下载
复制打开度盘即可:
链接:pan.baidu.com/s/1g46563LR…
提取码:cxnb
🌈 1 下载版本
Go官网下载地址:golang.org/dl/
我推荐镜像:golang.google.cn/dl/
Windows平台 和 Mac 平台推荐下载都是可执行文件,Linux平台下载压缩文件版,就在红框框里面自己去选。
- Go 下载需要依赖包借助 Git工具,这里就不做搭建了啊。
1 值得注意的是,安装版是 Mac和Windows 特有的,他们的名字类似于:
go1.9.darwin-amd64.pkg
go1.9.windows-386.msi
go1.9.windows-amd64.msi
安装版,顾名思义,双击打开它会出现安装向导,让你选择安装的路径,帮你设置好环境比安康等信息,比较省事一些。
这里的压缩版的就是一个压缩文件,可以解压得到里面的内容,他们的名字类似于:
go1.9.darwin-amd64.tar.gz
go1.9.linux-386.tar.gz
go1.9.linux-amd64.tar.gz
go1.9.windows-386.zip
go1.9.windows-amd64.zip
压缩版我们下载后需要解压,然后自己移动到要存放的路径下,并且配置环境变量等信息,相比安装版来说,比较复杂一些,手动配置的也比较多,你也可以选择到镜像网站选择相应的版本下载,基本上都是最新版,可以放心食用。
2 测试是否安装
下面是版本命令,如果正常输出那就说明已经安装。
go version
### 像这样
go version go1.16.4 windows/amd64
3 编辑器的选择
小孩子才做选择题,
VSCode特点:轻量,丰富插件,跨平台开发。
Goland特点:调试较强,强大的代码洞察力,内置多种开发工具集。
2 🖥️ 安装
👨💻 Linux安装(推荐这种)
Ubuntu 64位进行演示,CentOS,RedHat等其他发行版就是安装命令与路径大同小异的,不影响。
go1.9.linux-amd64.tar.gz 下载并传到 ubuntu 64位后,进行解压,你可以采用自带的解压软件解压,如果没有可以在终端行使用 tar命令行 工具解压,我们这里选择的安装目录是 /usr/local/go,可以使用如下命令:
tar -C /usr/local -xzf go1.9.linux-amd64.tar.gz
如果提示没有权限,在最前面加上 sudo 以root用户的身份运行。运行后,在/usr/local/下就可以看到go目录了。如果是自己用软件解压的,可以拷贝到/usr/local/go目录下,但是要保证你的go文件夹下是bin、src、doc等目录,不要go文件夹下又是一个go文件夹,这样就双重嵌套了那就不行。
然后就要配置环境变量了,Linux 下有两个文件可以配置,其中/etc/profile是针对所有用户都有效的;$HOME/.profile是针对当前用户有效的,可以根据自己的情况选择。
针对所有用户的需要重启电脑才可以生效;针对当前用户的,在终端里使用 source命令 加载这个$HOME/.profile即可生效。
source ~/.profile
使用文本编辑器譬如 VIM 编辑他们中的任意一个文件,在文件的末尾添加如下配置保存(:wq)即可:
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
其中GOROOT环境变量表示我们GO的安装目录,这样其他软件比如我们使用的Go开发IDE就可以自动的找到我们的Go安装目录,达到自动配置Go SDK的目的。
第二句意思是把/usr/local/go/bin这个目录加入到环境变量PATH里,这样我可以在终端里直接输入go等常用命令使用了,而不用再加上/usr/local/go/bin这一串绝对路径,更加的简洁方便。
以上配置好之后,我们打开终端,输下面命令,就可以看到go的版本等信息了。
➜ ~ go version
go version go1.9 linux/amd64
这就说明我们已经安装go成功了,如果提示go这个命令找不到,说明我们配置还不对,主要在PATH这个环境变量,仔细检查,直到可以正常输出为止。
🍏 Mac下安装
分成压缩版和安装版,他们都是64位的。压缩版和 Linux 的大同小异,因为 Mac 和 Linux 都是基于Unix的,终端这一块基本上是相同的,基本上MAC是程序员的最爱哈哈。
压缩版解压后,就可以和 Linux 一样放到一个目录下,这里也以/usr/local/go/为例。在配置环境变量的时候,针对所有用户和Linux也是一样的,都是/etc/profile这个文件;针对当前用户,Mac下是$HOME/.bash_profile,其他配置都一样,包括编辑sudo权限和生效方式,最后在终端里测试一下:
➜ ~ go version
go version go1.9 darwin/amd64
Mac安装版下载后双击可以看到安装界面,按照提示下一步下一步即可。安装版默认安装目录是/usr/local/go,并且也会自动的把/usr/local/go/bin目录加入到PATH环境变量中,重新打开一个终端,就可以使用go version进行测试了,我就这里不演示了。
👩💻 Windows安装
此安装实例用 64位Win10系统 安装 Go1.11.5可执行文件版本为例。
将上一步选好的安装包下载到本地磁盘。
双击下载好的文件
配置GOPATH
配置GOPATH。GOPATH:工作目录,就是放你项目代码的地方
这个工作目录我们可以根据自己的设置指定,比如我的Mac在$HOME/code/go下,Window的可以放到d:\code\go下等。该目录下有3个子目录,他们分别是:
.
├── bin
├── pkg
└── src
这都是啥意思呢?
bin文件夹存放go install命名生成的可执行文件,可以把GOROOT/bin一样,这样就可以直接在终端里使用我们go开发生成的程序了。
pkg文件夹是存在go编译生成的文件。
src存放的是我们的go源代码,不同工程项目的代码以包名区分。
cmd输入go env 查看是否安装成功
步骤
将D:\code\go添加到环境变量:
(1)GOROOT为disk:\directory\GoDevelopment\GoRoot,
- 例如D:\GoWorks\GoDevelopment\GoRoot
(2)GOPATH为disk:\directory\GoDevelopment\GoWorkspace,
- 例如D:\GoWorks\GoDevelopment\GoWorkspace
(3)MINGGW_HOME为disk:\directory\GoDevelopment\Mingw64,
- 例如D:\GoWorks\GoDevelopment\Mingw64
(4)GO111MODULE为on
(5)GOPROXY为goproxy.cn
追加Path变量
(1)%GOROOT%\bin
(2)%GOPATH%\bin
(3)%MINGGW_HOME%\bin
配置结果如图所示:
在 Go 1.8 版本 之前,GOPATH环境变量默认是空的。请你注意了,从 Go1.8 版本开始后,Go开发包在安装完成后会为GOPATH设置一个默认目录。
GOPATH在不同操作系统平台上的默认值
Windows | %USERPROFILE%/go | C:\Users\用户名\go
Unix | $HOME/go | /home/用户名/go
同时,我们将 GOROOT下的bin目录及GOPATH下的bin目录都添加到环境变量中。
3 📝 Go开发编辑器
Go是UTF-8编码的文本文件存放源代码,理论上使用任何一款文本编辑器都可以做Go语言开发,但是这里推荐使用VS Code和Goland。 VS Code是微软开源的编辑器,而Goland是jetbrains出品的付费IDE。
我们这里使用VS Code 加插件做为go语言的开发工具。
VSCode
VS Code全称Visual Studio Code,是微软公司开源的一款免费现代化轻量级代码编辑器,支持几乎所有主流的开发语言的语法高亮、智能代码补全、自定义热键、括号匹配、代码片段、代码对比 Diff、GIT 等特性,支持插件扩展,支持 Win、Mac 以及 Linux平台。
虽然不如某些IDE功能强大,但是它添加Go扩展插件后已经足够胜任我们日常的Go开发。
官方:code.visualstudio.com/Download
请根据自己的电脑平台选择对应的安装包。
双击下载好的安装文件,双击安装即可。
配置 安装中文简体插件 点击左侧菜单栏最后一项管理扩展,在搜索框中输入chinese ,选中结果列表第一项,点击install安装。
安装完毕后右下角会提示重启VS Code,重启之后你的VS Code就显示中文啦!
VSCode主界面介绍:
安装go扩展
现在我们要为我们的VS Code编辑器安装Go扩展插件,让它支持Go语言开发。
Code Runner 必装
代码快捷运行, 可以运行片段,十分强大,推荐安装
TabNine 推荐
全语言代码推理补全插件,十分强大,推荐安装
Goland配置
Goland下载地址 www.jetbrains.com/
输入 idea.singee77.com/ ,就激活就可以了,这可不行使用下面那个
最新激活吗:www.activejetbrains.gq
还不行就百度找吧
另外说明:如果是sublime 安装go (sublime 安装插件不详说)
-
1)直接 按住快捷键 shift + ctrl + p,在弹出框中输入install package,回车
-
2)输入gosublime,回车(一定要有gosublime)
-
- gosublime安装完成后,Preferences -> package settings -> GoSublime -> Settings - Uesrs需要配置下GOPATH,GOROOT
{
"env": {
"GOPATH": "F:/mygo",
"GOROOT": "E:/Go"
}
}
安装完成,就可以创建项目
一定要正确的添加系统变量
PATH : go的执行程序的目录(如D:/go/bin)
GOROOT:go的安装根目录(如D:/go)
GOPATH: go的项目根目录(如:D:/wwwroot/go-test)
适合个人开发者
我们知道源代码都是存放在GOPATH的src目录下,那我们可以按照下图来组织我们的代码。
目前流行的项目结构
Go语言中也是通过包来组织代码文件,我们可以引用别人的包也可以发布自己的包,但是为了防止不同包的项目名冲突,我们通常使用顶级域名来作为包名的前缀,这样就不担心项目名冲突的问题了。
因为不是每个开发者都拥有自己的顶级域名,所以目前流行的方式是使用个人的github用户名来区分不同的包。
听好了:

小张和李四都有一个名叫studygo的项目,那么这两个包的路径就会是:
import "github.com/zhangsan/studygo"
和
import "github.com/lisi/studygo"
以后我们从github上下载别人包的时候,如:
go get github.com/jmoiron/sqlx
那么,这个包会下载到我们本地GOPATH目录下的src/github.com/jmoiron/sqlx。
适合企业开发者
VSCcode配置
GOPATH是一个环境变量,用来表明你写的go项目的存放路径(工作目录)。该配置指定了Rich go language所需包的存储路径, 使用快捷键:ctrl + ,打开settings窗口,搜索gopath,点击“Edit in settings.json”,打开配置窗口,在该json配置文件中增加go.gopath字段,值设置成你希望的目录就好,我这里设置成“D:\GoProjects”。
体验
安装及配置完成后,试着体验下该插件是否能正常使用,此时输入fmt. 时会发现并没有出现期望的智能提示,反倒是出现了如下图右下角的提示框:
解决无效问题
这是为什么了?这是因为Rich Go language的使用需要用到一些的go语言包,在功能介绍的截图里面其实有提到,其中包括gocode、gopkgs、go-outline等。要解决该问题并不难,点击“install all”安装所需的依赖包即可。(请你注意:选择其中一个点击“install all”就好,因为install all 安装的包已经包含了另一个提示里面的需要的包,多次点击只会重复安装,很浪费时间的)
安装依赖包的过程中,我们可以查看到具体安装了哪些依赖包,安装成功后这些包都存放在之前设置的GOPATH的bin目录下,不信你现在可以亲自去看看~。
如果此时你说提示被你关掉了怎么办?这里提供了两种办法解决方案
-
(1)重启VS Code,再次输入fmt. 此时提示便会再次出现,然后按照如上操作便可。
-
(2)使用命令手动加上,进入GOPATH文件夹,打开命令行,执行安装命令,如gocode:
// 指定当前目录为GOPATH,不指定的话会把包存在默认目录下(C:\Users\用户名\go\bin ) set GOPATH=%cd%
// 下载gocode包 go get github.com/mdempsky/gocode
如果需要继续安装其他包,继续执行go get命令就好,只不过你还要修改相应的github链接即可。
再次体验下
再次输入fmt. 试试,此时智能提示便会如期出现,如下图:
调试
对于开发而言,调试是在所难免的,为了是VS Code支持go语言的调试,只需要简单的几步便可配置完成。具体操作如下:
预处理:
为了配合调试设置,这里先做了一个小小的调整,我新建了MyFirstGo文件夹,并把main.go文件移到该文件夹下(如果是根据我步骤进行实验的话,需要预先处理下),因为启动调试时会生成一些必要的文件,比如launch.json、debug这些,而且vs code也要求打开文件夹才能进行launch配置。
(1)按照以往的习惯,我都会直接按起f5进行启动并调试,我照旧进行操作,发现按下f5启动时会弹出提示框,原因不用多说,就是缺少调试所需的包,点击“install”即可安装。
(2)如果你像之前一样不小心关掉了提示框,不要慌。照旧,进入之前配置的GOPATH目录,打开命令窗口进行安装,命令如下:
set GOPATH=%cd%
go get github.com/derekparker/delve/cmd/dlv
安装完成后,会编译生成dlv.exe文件,该文件依旧存在GOPATH的bin目录下。