golang环境详细安装、配置

一 Go语言发展史和使用场景

1.1.1  Go语言发展历史

Go 语言发展至今已经过去十年多了,是目前最流行的新兴语言,云计算领域的首选语言,而且目前随着区块链的流行,Go 再次成为了这个领域的第一语言,以太坊,IBM 的 fabric 等重量级的区块链项目都是基于 Go 开发的。

Go语言也叫做Golang,go语言的全称:“go programming language”,Go语言通常被叫做Golang的原因主要有两个:

1、go.org域名被注册了,所以Go只能用golang.org作为官网域名;

2、go太广泛了,搜索引擎不能很好的识别,搜索golang更能缩小范围精确的找到答案。

2007 年,谷歌工程师 Rob Pike, Ken Thompson 和 Robert Griesemer 开始设计一门全新的语言,这是Go 语言的最初原型。

1.1.2  Go语言开发团队核心成员

罗勃·派克 :曾是贝尔实验室Unix开发团队成员, Plan9操作系统开发的主要领导人,Inferno操作系统开发的主要领导人。UTF-8创作者

肯·汤普森 :图灵奖得主,Unix的发明人之一, C语言之父之一。 UTF-8创作者

罗伯特·格瑞史莫:研发出V8 JavaScript引擎。

1.1.3  Go语言logo和吉祥物

Go之所以叫Go,是想表达这门语言的运行速度、开发速度、学习速度(develop)都像gopher一样快。gopher是一种生活在加拿大的小动物,go的吉祥物就是这个小动物, 它的中文名叫做土拨鼠,他们最大的特点就是挖洞速度特别快。

Go语言logo

Go语言的吉祥物-gopher 土拨鼠,是Rob Pike老婆制作的

1.1.4  Go语言特点

Go 语言保证了既能达到静态编译语言的安全和性能,又达到了动态语言开发维护的高效率,使用一个表达式来形容 Go 语言:Go = C + Python , 说明 Go 语言既有 C 静态语言程序的运行速度,又能达到 Python 动态语言的快速开发。

1 )从 C 语言中继承了很多理念,包括表达式语法,控制结构,基础数据类型,调用参数传值,指针等等,也保留了和 C 语言一样的编译执行方式及弱化的指针

2) 引入包的概念,用于组织程序结构,Go 语言的一个文件都要归属于一个包,而不能单独存在。

3) 垃圾回收机制,内存自动回收,不需开发人员管理

4) 天然并发 (重要特点)

从语言层面支持并发,实现简单

goroutine,轻量级线程,可实现大并发处理,高效利用多核。

基于 CPS 并发模型(Communicating Sequential Processes )实现

5)吸收了管道通信机制,形成 Go 语言特有的管道channel ,通过管道 channel , 可以实现不同的goroute之间的相互通信。

6)函数可以返回多个值

1.1.5  Go语言的应用场景

Go语言目前在云计算、容器虚拟化、分布式存储、网络爬虫、运维开发、Web开发、服务端开发、区块链、IoT等领域都有所应用。

以前你使用 C 或者 C++ 做的那些事情,用 Go 来做很合适,例如日志处理、文件系统、监控系统等,Go语言天生支持并发,所以十分适合编写分布式爬虫及大数据处理,大量优秀的Web框架如Echo、Gin、Iris、beego等都是go开发的,而且 Go 内置的 net/http 包十分的优秀,目前非常受欢迎的kubernetes、docker等也都是Go语言开发的。

Go语言在云计算、大数据、微服务、高并发领域应用应用非常广泛。Go语言由 Google公司开发,并于2009年开源,相比Java/python/c等语言,Go尤其擅长并发编程,性能堪比C语言,开发效率肩比Python, 被誉为“21世纪的C语言”。

二 搭建Go开发环境和安装vscode工具

1、常见的golang开发工具

1)、Visual Studio Code

Visual Studio Code是一款免费开源的现代化轻量级代码编辑器,支持几乎所有主流的开发语言的语法高亮、智能代码补全、自定义热键、括号匹配、代码片段、代码对比 Diff、GIT 等特性,支持插件扩展,并针对网页开发和云端应用开发做了优化。软件跨平台支持 Win、Mac 以及 Linux。而且是免费的

2.1 windows下安装VSCode开发环境

VSCode直接下载地址:直接下载

VSCode 最新下载地址: 最新下载

1、在windows下安装VSCode

第一步:下载VSCode可执行文件

下载之后的文件如下:

第二步:双击安装文件VSCodeUserSetup-x64-1.63.2.exe,具体步骤如下:

不使用默认的路径,我们选择安装到:C:vscode 下面

把所有选项,都打上对勾,这样方便后期使用:

这里我选择:Light

第三步:安装中文插件

输入:chinese

汉化后的效果如下:

第四步:安装Go扩展插件,输入: go

输入:vscode-go-syntax ,安装go语法支持插件:

注:此时需要把vscode关闭一下。 等后期go环境变量配置成功后,再重新打开,重新让vscode加载go的环境变量。

2.2  Windows下安装Go开发环境

Go安装包下载地址(国内可访问):直接下载,点我下载

只需要下载windows操作系统的.msi即可,这个是可执行文件

双击go1.17.7.windows-amd64.msi可执行文件

点击Next下一步

安装路径选择为:C:go1.17   不使用默认路径。(可以自己配置路径,我用的虚拟机就在c盘下安了)

点击finish安装完成

进到C盘下的 c:go1.17 目录,可看到如下内容:

bin: 存放编译后的二进制文件

pkg:存放编译后的包文件。 包文件扩展名通常为xxx.a ,即 .a 结尾。

src:存放Go语言包的源代码

3  Windows配置Go环境变量

为什么要配置Go环境变量?

如果不配置Go环境变量,打开cmd,执行go命令会报错,显示go不是内部或外部命令,无法运行程序。

1、配置环境变量

添加环境变量步骤如下:

点击此电脑,单击鼠标右键,可看到属性,点击属性

点击高级系统设置

2、用户变量和系统变量的区别

用户环境变量:局部生效,只对当前用户生效。

系统环境变量:全局生效,对所有用户都生效。

用户变量和系统变量冲突时,以用户变量为主。

总结:一般情况下你的电脑,只有你自已一个人使用,所以我们直接把go相关的环境变量直接配置到系统变量中。把go相关的用户变量都删除。这样配置起来轻松些。

3、删除用户变量中多余的环境变量。

把系统自带的用户变量中的GOPATH删除。因为原有路径C:Usersxxxgo 不是我们存放go代码的地方。

把当前用户PATH变量中自带的%USERPROFILE%gobin这个删除

4、在系统变量里增加go相关的变量

需要增加以下变量:

变量名

变量的值

变量作用

GOPATH

C:goproject

Go语言工作目录,指定存放自已编写的go项目,包,编译的二进制文件等

GOROOT

C:go1.17

指定Go 开发包的安装目录

PATH

追加:C:go1.17bin

增加go命令的路径,让我们可以在命令终端,不写路径,直接运行go命令

PATH

追加:C:goprojectbin

增加C:goprojectbin目录后,可以让我们在命令终端,不写路径,直接运行自已编译的go程序

GO111MODULE

on

开启Go.mod功能。指定编译go代码时,所需要的依赖包,直接使用go.mod来下载和管理。

go.mod是go官方依赖包管理工具

GOPROXY

https://goproxy.cn

配置go下载包的代理地址为七牛云的go代理地址。

go依赖包默认下载地址是国外的,中国访问不了

(1)、GOPAPTH环境介绍

Go语言是一个编译型语言,有很多依赖包需要开发在打包过程编译进去。所以需要配置一个类似workspace的工作区,也就是我定义好目录,要在这个目录下写源代码。

GOPATH境变量:用来表明你写的go项目的存放路径(工作目录)。

GOPATH路径最好只设置一个,所有的项目代码都放在GOPATH的src目录下。

在电脑C盘创建一个C:goproject目录,用来存放源代码,作为GOPATH路径。在c:goproject下新建三个目录src、bin、pkg效果如下:

src: 存放源代码

bin:  存放编译后的二进制文件

pkg:存放编译后的包文件

在系统变量里,增加GOPATH变量,找到新建

输入:GOPATH  ,变量值:C:goproject

(2)、配置GOROOT环境变量

点击新建,输入:GOROOT  ,变量值:C:go1.17

指定go安装包路径为:C:go1.17

(3)、Path环境变量增加:

给系统变量的PATH,增加变量:

C:go1.17bin

C:goprojectbin

如果系统自动增加了这两项,就不手动增加了。

(4)、配置GOPROXY代理加快包的下载

Go 在后续拉取模块版本时默认从https://proxy.golang.org拉取,但 proxy.golang.org 在中国无法访问,所以我们需要配置 goproxy.cn 代理,来解决包的下载,同样配置了代理,也可以提升下载速度。

Go.mod概述:是Golang1.11版本新引入的官方包管理工具,用于解决之前没有地方记录依赖包具体版本的问题,方便依赖包的管理。

如何使用go.mod?首先将go的版本升级为1.11以上,我们不用升级,go1.17默认支持了,只需要把GO111MODULE配置为on就可以了。

GO111MODULE中的111是什么?可以是222吗?

GO111MODULE中的111,代指1.11版本。(为了纪念第一个版本)

在系统环境中增加GOPROXY环境变量:

点新建,选择“变量名”输入框并输入“GO111MODULE ” ;“变量值”输入框并输入“on”。

点击“新建…”按钮, 选择“变量名”输入框并输入“GOPROXY”, 选择“变量值”输入框并输入“ https://goproxy.cn,direct ”

注:https://goproxy.cn,direct中的direct参数的作用是:当https://goproxy.cn代理可以正常访问时,就优先走代理下载依赖包。如果代理走不通或没有这个包,就不使用代理,直接去找包的github源地址下载。

点确定,关闭刚才所有窗口。

按下Ctrl+R键,输入cmd,查看环境变量

C:Usersxiangsi>go env

如果配置好,但没成功,重启一下电脑然后再查看

到此,go的开发环境安装成功。

4 Go程序编写规则-go run和go build的区别

4.1 生产环境编写Go程序的常见结构

Go常见开发场景目录结构。GOPATH=C:goproject,即我们的工作目录。

4.2通过VSCode编写第一个Go程序

进入到c:goproectsrc下,创建一个项目,名称叫:chapter-1

通过VSCode编写代码

打开VSCode软件,点击文件,点击“打开文件夹”

选择C:goprojectsrcchapter-1文件夹。

点+号,新建一个main.go文件

输入文件名main.go, 回车。

注:如果弹出以上窗口,暂时先不安装,先关闭。

输入以下代码:

package main

import (

"fmt"

)

func main()  {

fmt.Println("hello,word")

}

安装code runner插件,这样就可以在vscode中运行go程序了

安装成功之后会在右上角看到三角形,就可以编译go程序了。点击运行,右侧有个向右的三角号。

对于缺少的包,直接点 install 安装就可以了

注:如果代码上有波浪下划线,而语法上没有错误,可以把vscode重新打开,就可以解决这个问题了。

把vscode窗口关闭,重新打开,就可以了。