1. Go能做什么?
-
go的优点:运行速度快、并发能力强
-
Go的应用领域:
-
区块链应用(BT、分布式账本技术)
-
后端服务应用 例如:
-
美团后台流量支撑程序
支撑主站的后台流量(排序、推荐、搜索等),提供负载均衡、缓存、容错、按条件分流…
-
仙侠道 (类似游戏)
游戏服务端(通讯、逻辑、数据存储)
-
-
云计算 / 云服务后台应用 例如
-
盛大云CDN(内容分发网络)
CDN的调度系统、分发系统、监控系统、短域名服务、CDN内部开发平台等
-
京东消息推送云服务/京东分布式文件系统
后台所有服务全部用go实现
-
-
2. Golang的概述
Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。
Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源,在2012年早些时候发布了Go 1稳定版本。现在Go的开发已经是完全开放的,并且拥有一个活跃的社区。
- 特点
- 简洁、快速、安全 简化说:Go = C + Python
- 并行、有趣、开源
- 内存管理、数组安全、编译迅速
Go 语言被设计成一门应用于搭载 Web 服务器,存储集群或类似用途的巨型中央服务器的系统编程语言。
对于高性能分布式系统领域而言,Go 语言无疑比大多数其它语言有着更高的开发效率。它提供了海量并行的支持,这对于游戏服务端的开发而言是再好不过了
发展历程:
- 2007年,谷歌工程师RobPike,Ken Thompson 和 Robert Friesemer 开始设计一门全新的语言(Go语言雏形)
- 2009年11月10日,Google将Go语言以开源代码的方式向全球发布
- 2015年8月19日,Go 1.5发布,本次更新中移除了“最后残余的C代码”
- 2017年2月17日,Go语言1.8发布
- 2017年8月24日,Go语言1.9发布。19.2版本
- 2018年2月16日,Go语言1.10发布
2.1 特点:
2.1.1 基本结构
Go从C语言中继承了很多理念,包括表达式语法,控制结构,基础数据类,调用参数传值,指针等,也保留了和C语言一眼的编译执行方式及弱化的指针
package main
// 取得指针
func test(num *int){
*num = 20
}
2.1.2 包概念
在GO语言中,所有的文件都必须要归属于一个包,不能够单独存在。
包括里面所使用的类和方法
package main
import "fmt"
func test(){
fmt.Println("ok")
}
2.1.3 GC 垃圾回收
Go语言也与Java一样,拥有垃圾回收机制,内存自动回收,不需要开发人员管理。
不过在GC上,Go语言的GC并没有如Java的GC一样敏感。
2.1.4 天然并发
Go语言针对并发开发
- 从语言层面支持并发,实现相比其他语言更加简单
- goroutine - 轻量级线程,可实现大并发处理,高效利用多核
- 基于CPS并发模型实现
2.1.5 管道通信
Go吸收了管道通信机制,形成了Go语言特有的管道channel
通过管道,可以实现不同的goroute之间的相互通信
在Java中实现管道通信需要配置消息中间件(rabbitMq)或者本身的Socket
2.1.6 函数返回多个值
func test(n1 int ,n2 int)(int,int){
sum := n1+n2
sub := n1-n2
return sum,sub
}
2.1.7 创新
切片slice、延时defer
3. SDK 软件开发工具包
SDK是提供给开发人员使用的,其中包含了对应开发语言的工具包
官网地址快速链接:Golang官网
Go的官网可能会被墙,所以也可以去浏览各类网站提供的SDK版本资源包下载
4. 配置环境变量
环境变量 | 说明 | 内容 |
---|---|---|
GOROOT | 指定SDK的安装路径 | D:_Golang\GoSdk\go1.23.2 |
Path | 在系统路径中添加SDK的/bin目录 | %GOROOT%\bin |
GOAPTH | 工作目录。就是后续开发可能会用到的第三方工具或开发项目存放的目录 | 指定任意文件夹 |
GOPROXY | 资源代理地址 | https://goproxy.cn 七牛云 |
4.1 步骤:
-
设置》系统》高级系统设置
-
弹出的窗口中选择 “环境变量”
-
在环境变量窗口中,新建 GOROOT、GOPATH和GOPROXY 变量
- GOROOT是SDK的安装目录,选择到SDK的主目录路径就可以了
- GOPATH是工作路径,以后开发会使用到其他的第三方工具库,可以自己选择到一个存放的文件夹。
- GOPROXY是代理地址,因为Go原生的资源地址大概率会访问不到,所以直接在系统变量这里设置会很好
-
编辑 Path 变量
- 在Path变量中编辑,新建一个变量:%GOROOT%\bin
-
以上步骤做完后全部选择确认即可
-
打开 cmd 窗口
go env go version
- 输入上述代码,如果出现环境信息和版本信息,那么就代表环境OK
#开启mod模式(项目管理需要用到) go env -w GO111MODULE=on #重新设置成七牛镜像源(推荐)或阿里镜像源(用原有的会比较慢) go env -w GOPROXY=https://goproxy.cn,direct go env -w GOPROXY=https://mirrors.aliyun.com/goproxy #关闭包的MD5校验 go env -w GOSUMDB=off #查看环境变量 go env
- 然后在输入上述代码,配置镜像代理地址
5. VS Code配置
使用VS Code开发,需要安装插件,还需要安装对应的安装包
5.1 步骤
5.1.1 安装插件
- 安装go插件。
-
运行.runner插件
装好.runner插件后,需要对该插件设置
将这三个选项打开,以方便在vs code的终端使用
5.1.2 配置
在vs code中 ctrl+shift+p打开命令终端
输入
go: install
选择 Update Tools 这个选项,回车或鼠标单击选择
然后将所有的选项都选择,最后点击确定。
5.1.3 运行
最后重启一次VS Code,测试一下代码是否运行成功
package main
import "fmt"
func main() {
fmt.Println("see,is go!")
}
运行的按钮,在窗口的右上角,或者直接按:ctrl+alt+N 快速运行