1、GO语言历史背景
Go语言起源于Google,经过Google开发团队多年的设计和开发,于2009年正式对外发布。Go语言的设计理念包括简洁高效、高并发支持和安全稳定。它旨在简化编程任务,提高开发效率。Go语言内置goroutine和channel实现高效的并发编程,同时提供垃圾回收机制确保内存安全。Go语言迅速吸引了全球开发者的关注,成为了著名编程语言排行榜TIOBE的年度最佳编程语言。
详细经过可参考以下博客:
以下是Go语言的吉祥物,类似于linux的企鹅。
值得一提的是,Go语言的开发者之一是当年开发C语言的大佬。
2、GO语言运用场景
博主认为如果您是和博主一样将Go语言作为娱乐知识的您不必了解Go语言的运用场景,只需要去学习Go语言中的一些思想,如果您是希望学习Go语言来就业,还是要明确好目标的。
2.1 云计算与微服务
-
特点:原生支持高并发(goroutine + channel)、轻量级、适合分布式系统。
-
典型应用:
-
微服务架构:如Uber、腾讯、字节跳动等用Go构建微服务。
-
云原生工具:Docker(容器化)、Kubernetes(容器编排)、Prometheus(监控)等核心项目均用Go开发。
-
服务网格:Istio、Linkerd的部分组件。
-
2.2 网络编程与API开发
-
特点:标准库强大(
net/http
)、高性能、低延迟。 -
典型应用:
-
Web后端:高频API服务(如支付、社交平台),框架如Gin、Echo。
-
网关/代理:Traefik(反向代理)、Envoy的Go扩展。
-
RPC服务:gRPC(Google开源的高性能RPC框架)的Go实现。
-
2.3 分布式系统与中间件
-
特点:跨平台、低资源消耗、易部署。
-
典型应用:
-
数据库与存储:Etcd(键值存储)、CockroachDB(分布式SQL)、InfluxDB(时序数据库)。
-
消息队列:NSQ、Sarama(Kafka客户端库)。
-
2.4 命令行工具(CLI)
-
特点:编译为单二进制文件、无依赖、启动快。
-
典型工具:
-
DevOps工具:Terraform(基础设施即代码)、Github CLI。
-
开发工具:k6(性能测试)、Cobra(CLI框架)。
-
2.5 区块链与加密货币
-
特点:高性能、安全性强。
-
典型项目:
-
公链:Hyperledger Fabric(企业级区块链框架)。
-
节点实现:以太坊的Go实现(Geth)。
-
2.6 实时系统与流处理
-
特点:goroutine适合处理实时数据流。
-
典型应用:
-
聊天服务器(如Slack的部分后端)。
-
实时数据分析管道(如日志处理)。
-
2.7 嵌入式与边缘计算
-
特点:内存占用小、跨平台(如Raspberry Pi)。
-
典型场景:
-
IoT设备的数据采集与转发。
-
边缘网关(如华为的KubeEdge边缘计算框架)。
-
2.8 网络安全工具
-
特点:静态编译、难以逆向。
-
典型工具:
-
渗透测试工具:GoPhish(钓鱼测试)、Nuclei(漏洞扫描)。
-
代理工具:Shadowsocks的Go实现。
-
不适合的场景
-
GUI开发:缺乏成熟的桌面UI框架。
-
低延迟实时系统:如高频交易(GC可能导致延迟)。
-
复杂算法/科学计算:生态不如Python/R丰富。
为什么选择Go?
-
开发效率:语法简洁,编译速度快。
-
性能平衡:接近C++/Java,但开发更高效。
-
并发模型:goroutine比线程更轻量(KB级栈,动态扩展)。
Go尤其适合需要高并发、易维护、快速迭代的云时代应用,是云计算和微服务领域的首选语言之一。
可参考以下网址:
3、GO语言下载,环境安装
3.1 编译环境下载
进入以下网站进行文件下载:
Download and install - The Go Programming Language
以下根据自己的操作系统和所需要的版本选择下载,博主下载的是很多年前的版本,因为博主是跟着网上的尚硅谷网课学习的,如果您也是跟着网课学习的,希望您也下载过去的版本,这样子在学习的时候可以避开很多的坑,反正工作需要的话就和同事的环境保持一致即可。
下载完成之后直接将压缩包解压,无需setup。
进入到解压之后的文件夹中,打开bin文件,其中的go.exe文件就可以进行go语言编译。但是此时的编译功能只能在当前目录下使用,所以我们需要配置系统环境变量。
验证
此时打开cmd命令行,到bin目录下运行go version命令,可以查看到当前安装的go语言编译器版本。
注意:此时在其他的文件夹下使用go命令是无法识别的。所以还要进行之后的操作。
3.2 系统环境变量配置
首先在桌面右键之后点击个性化,或者是其他方式打开电脑设置界面,之后直接搜索环境,打开"编辑系统环境变量"
先点击1"环境变量设置",之后的操作都在2"系统变量"中新建或者是编辑。
1、GOROOT
该系统环境变量名中存放的变量值为解压缩的go语言编译器文件夹。
2、path
系统默认该变量名下有很多的路径,我们需要新建一个路径,新建的路径中写bin目录所在路径,网上大部分的教程这里使用相对路径,如果您的环境下出现错误,就使用绝对路径吧。
3、GOPATH
在电脑中新建一个文件夹用于存放将来的Go语言工程,然后将该文件夹的路径放在中国变量名下。
验证
这里一定要记得先关闭cmd,然后再次重新打开cmd。
然后在任意的目录下使用目录go version,您可以看到可正常显示go语言的版本,那么此时你的环境已经安装完成了。
4、GO语言编译方法
博主图方便直接在vscode中打开terminal进行编译。
4.1 编译
go run -file
实例:
go run hello.go
该命令是将编译和运行一起进行了,所以花费的时间会稍微长一点。
4.2 先编译再运行
先编译:go build -file
实例:go build hello.go
运行:./-file
实例:./hello
指定生成运行文件的名称,必须以.exe结尾,不然的话不能运行。
go build -o -Target file -file
实例:go build -o hello1.exe hello.go
5、GO语言特性及注意事项
Go语言是一种动态性语言,弱语言,类似于python。其将include更换为import,一个文件作为一个包(package),和python的模块是一个概念。
1、Go语言文件必须以.go结尾。否则编译报错。
2、Go语言的执行入口函数是main。
3、Go语言区分大小写。
4、Go语言有不用加分号,编译器会自动加。当然加了分号也是没事的,就是比较累赘。
5、Go语言一行是一个语句,一行不能写两个语句。
6. Go语言要求import的内容、定义的变量必须被引用,否则会报错。(该功能是为了让开发者强制删除一些没有被使用的内容,从而提高代码的性能)
未使用包:
未使用变量: