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 语言的最初原型。
罗勃·派克 :曾是贝尔实验室Unix开发团队成员, Plan9操作系统开发的主要领导人,Inferno操作系统开发的主要领导人。UTF-8创作者
肯·汤普森 :图灵奖得主,Unix的发明人之一, C语言之父之一。 UTF-8创作者
罗伯特·格瑞史莫:研发出V8 JavaScript引擎。
Go之所以叫Go,是想表达这门语言的运行速度、开发速度、学习速度(develop)都像gopher一样快。gopher是一种生活在加拿大的小动物,go的吉祥物就是这个小动物, 它的中文名叫做土拨鼠,他们最大的特点就是挖洞速度特别快。
Go语言logo
Go语言的吉祥物-gopher 土拨鼠,是Rob Pike老婆制作的
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)函数可以返回多个值
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语言”。
1、常见的golang开发工具
1)、Visual Studio Code
Visual Studio Code是一款免费开源的现代化轻量级代码编辑器,支持几乎所有主流的开发语言的语法高亮、智能代码补全、自定义热键、括号匹配、代码片段、代码对比 Diff、GIT 等特性,支持插件扩展,并针对网页开发和云端应用开发做了优化。软件跨平台支持 Win、Mac 以及 Linux。而且是免费的
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的环境变量。
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语言包的源代码
为什么要配置Go环境变量?
如果不配置Go环境变量,打开cmd,执行go命令会报错,显示go不是内部或外部命令,无法运行程序。
1、配置环境变量
添加环境变量步骤如下:
点击此电脑,单击鼠标右键,可看到属性,点击属性
点击高级系统设置
2、用户变量和系统变量的区别
用户环境变量:局部生效,只对当前用户生效。
系统环境变量:全局生效,对所有用户都生效。
用户变量和系统变量冲突时,以用户变量为主。
总结:一般情况下你的电脑,只有你自已一个人使用,所以我们直接把go相关的环境变量直接配置到系统变量中。把go相关的用户变量都删除。这样配置起来轻松些。
3、删除用户变量中多余的环境变量。
把系统自带的用户变量中的GOPATH删除。因为原有路径C:\Users\xxx\go 不是我们存放go代码的地方。
把当前用户PATH变量中自带的%USERPROFILE%\go\bin这个删除
4、在系统变量里增加go相关的变量
需要增加以下变量:
变量名 |
变量的值 |
变量作用 |
GOPATH |
C:\goproject |
Go语言工作目录,指定存放自已编写的go项目,包,编译的二进制文件等 |
GOROOT |
C:\go1.17 |
指定Go 开发包的安装目录 |
PATH |
追加:C:\go1.17\bin |
增加go命令的路径,让我们可以在命令终端,不写路径,直接运行go命令 |
PATH |
追加:C:\goproject\bin |
增加C:\goproject\bin目录后,可以让我们在命令终端,不写路径,直接运行自已编译的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.17\bin
C:\goproject\bin
如果系统自动增加了这两项,就不手动增加了。
(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:\Users\xiangsi>go env
如果配置好,但没成功,重启一下电脑然后再查看
到此,go的开发环境安装成功。
Go常见开发场景目录结构。GOPATH=C:\goproject,即我们的工作目录。
进入到c:\goproect\src下,创建一个项目,名称叫:chapter-1
通过VSCode编写代码
打开VSCode软件,点击文件,点击“打开文件夹”
选择C:\goproject\src\chapter-1文件夹。
点+号,新建一个main.go文件
输入文件名main.go, 回车。
注:如果弹出以上窗口,暂时先不安装,先关闭。
输入以下代码:
package main
import (
"fmt"
)
func main() {
fmt.Println("hello,word")
}
安装code runner插件,这样就可以在vscode中运行go程序了
安装成功之后会在右上角看到三角形,就可以编译go程序了。点击运行,右侧有个向右的三角号。
对于缺少的包,直接点 install 安装就可以了
注:如果代码上有波浪下划线,而语法上没有错误,可以把vscode重新打开,就可以解决这个问题了。
把vscode窗口关闭,重新打开,就可以了。