golang开篇
什么是Golang
Golang(也称为Go)是一种开源编程语言,由Google开发。它结合了静态编译语言的性能和动态语言的开发效率,适用于构建可靠、高效、并发的软件。
Golang的设计目标是简单、高效、可靠。它支持并发编程,内置垃圾回收机制,具有强大的标准库和丰富的第三方库支持,同时还具有良好的跨平台支持。Golang的语法简洁明了,易于学习和使用,同时支持面向对象编程和函数式编程。
Golang被广泛应用于构建Web应用、网络服务、分布式系统、云计算等领域。它已经成为了一种流行的编程语言,并且在不断发展和完善。
Golang 的学习方向
区块链研发工程师
Go服务器端/游戏软件工程师
Golang分布式/云计算软件工程师
Golang应用领域
- 区块链的应用开发
- 后台的服务应用
- 云计算/云服务后台应用
Go 语言的诞生
Go 语言的核心开发团队-三个大牛
Google 创造 Golang 的原因
Golang 的发展历程
- 2007 年,谷歌工程师 Rob Pike, Ken Thompson 和 Robert Griesemer 开始设计一门全新的语言,这是Go 语言的最初原型。
- 2009 年 11 月 10 日,Google 将 Go 语言以开放源代码的方式向全球发布。
- 2015 年 8 月 19 日,Go 1.5 版发布,本次更新中移除了”最后残余的 C 代码”
- 2017 年 2 月 17 日,Go 语言 Go 1.8 版发布。
- 2017 年 8 月 24 日,Go 语言 Go 1.9 版发布。 1.9.2 版本
- 2018 年 2 月 16 日,Go 语言 Go 1.10 版发布。
Golang 的语言的特点
简介:
Go 语言保证了既能到达静态编译语言的安全和性能,又达到了动态语言开发维护的高效率,使用一个表达式来形容 Go 语言:Go = C + Python , 说明 Go 语言既有 C 静态语言程序的运行速度,又能达到 Python 动态语言的快速开发。
- C 语言中继承了很多理念,包括表达式语法,控制结构,基础数据类型,调用参数传值,指针等
等,也保留了和 C 语言一样的编译执行方式及弱化的指针
举一个案例(体验):
1 | //go 语言的指针的使用特点 |
- 引入包的概念,用于组织程序结构,Go 语言的一个文件都要归属于一个包,而不能单独存在。
垃圾回收机制,内存自动回收,不需开发人员管理
天然并发 (重要特点)
(1) 从语言层面支持并发,实现简单
(2) goroutine,轻量级线程,可实现大并发处理,高效利用多核。
(3) 基于 CPS 并发模型(Communicating Sequential Processes )实现吸收了管道通信机制,形成 Go 语言特有的管道 channel 通过管道 channel , 可以实现不同的 goroute之间的相互通信。
函数可以返回多个值。举例:
1 | //写一个函数,实现同时返回 和,差 |
- 新的创新:比如切片 slice、延时执行 defer
搭建go开发环境
下载 SDK 工具包
- Go 语言的官网为:https://go.dev/
- SDK 下载地址:https://golang.google.cn/dl/
- 选择os对应的 sdk 版本(建议使用stable versions即稳定版)
windows下搭建go开发环境
安装
这里以go1.20.4.windows-amd64.zip为例
下载完后解压缩后会得到 go 文件夹,其中 /bin
目录包含了 go 源码包编译出的编译器(go)、文档工具(godoc)、格式化工具(gofmt),即是我们要进行配置的目录。
配置环境变量
我们需要添加两个环境变量:
GOROOT:SDK 的根目录,即解压缩后 go 文件夹所在的路径(例如 D:\GoEnv\go)
GOPATH:工作目录,即以后我们的 go 项目的工作路径,可以随意地址一个目录;
同时还需要把 SDK 下的 /bin 目录添加到系统 Path 环境变量下,添加完成后在 cmd 中输入 go version 命令检查是否配置成功:
1 | > go version |
同时可以使用 go env
查看我们配置的环境变量:
1 | > go env |
配置 Go 代理
通过 go get 命令下载各种依赖时,经常需要访问 github/google 等网站,这些网站访问速度可能会比较慢,所以我们可以进行配置代理,保证快速稳定的下载访问。
这里推荐 goproxy.io,它是全球最早的 Go modules 镜像代理服务之一,采用 CDN 加速服务为开发者提供依赖下载, 该服务由一批热爱开源,热爱 Go 语言的年轻人开发维护。
配置的方式就是在用户变量或系统变量下添加 GOPROXY 环境变量,变量值填写 https://goproxy.io,direct,添加完成后,可以再次使用 go env 命令查看到该环境变量:
1 | > go env |
Linux下搭建go开发环境
以go1.20.4.linux-amd64.tar.gz
为例
解压
使用命令 tar -xzvf go1.20.4.linux-amd64.tar.gz -C /usr/local/
解压
配置
go语言的环境变量配置,需要两个值:
GOROOT
是系统上安装Go软件包的位置GOPATH
是工作目录的位置
1 | mkdir -p /home/liaojie1314/GOPATH # 请替换liaojie1314为你的用户名 |
打开~/.bashrc
或/etc/profile
文件,写入如下配置:
1 | export GOPATH=$HOME/GOPATH # $HOME/GOPATH为工作目录,即以后我们的 go 项目的工作路径 |
保存后执行source ~/.bashrc
使配置生效
测试
在命令行执行go version
如果能够显示正确的版本号则证明配置成功。