GO
GO 基本概念
Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。
Go是从2007年末由Robert Griesemer(罗伯特·格利茨默),Rob Pike(罗伯·派克),Ken Thompson(肯·汤普森)主持开发,后来还加入了 Ian Lance Taylor(伊恩·兰斯·泰勒),Russ Cox(鲁斯·考斯)等人,并最终于2009年11月开源,在2012年早些时候发布了Go 1稳定版本。现在Go的开发已经是完全开放的,并且拥有一个活跃的社区。
最近十年来,C/C++咋计算领域没有得到很好的发展,并没有新的系统编程语言出现。对开发程度和系统效率在很多情况下不能兼得。要么执行效率高,但抵效的开发和编译,如C++;要么执行低效,但拥有有效的编译,如.NET、Java;所有需要一种拥有较高效的执行速度、编译速度和开发速度的编程语言,Go就横空出世了。
传统的语言比如C++,大家花费太多的时间来学习如何使用这门语言,而不是如何更好的表达写作者的思想,同时编译花费的时间实在太长,对于编写——编译——运行这个链条来说周期太长。动态语言如python,由于没有强类型的约束,很多问题需要在运行时发现,这种低级错误更应该交给编译器来发现。
- 人力成本越来越高
- 机器越来越便宜
- 机器的性能越来越厉害
- 在开发效率和运行速度上达到平衡
go出现之前,无论汇编语言、还是动态脚本语言,在执行效率和开发效率上都不能兼备。
执行效率 execution speed: C/C++ >Java > PHP
开发效率 developing efficiency: PHP > Java > C/C++
一家叫做Docker的公司。就是使用Go 进行项目开发,并促进了计算机领域的容器行业,进而出现了像kubernetes这样的项目。现在,我们完全可以说Go是容器语言。
除了大名鼎鼎的Docker,完全用Go实现。业界最为火爆的容器编排管理系统kubernetes完全用Go实现。之后的Docker Swarm,完全用Go实现。除此之外,还有各种有名的项目,如etcd、consul、flannel,七牛云存储等等均使用Go实现。Go语言促使了云的发展。
除了云项目外,还有像今日头条、Uber这样的公司,他们也使用Go语言对自己的业务进行了彻底的重构。
Go语言专门针对对处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C/C++代码的速度,而且更加安全、支持并行进程。作为出现在21世纪的语言,其近C 的执行性能和近解析性语言的开发效率,以及近乎于完美的编译速度,已经风靡全球。特别是在云项目中,大部分都使用了Golang来开发。
Go 语言用途
Go语言被设计成一门应用于Web服务器,存储集群或类似用途的巨型中央服务器的系统编程语言。
对于高性能分布式系统领域而言,Go语言无疑比大多数其它语言有着更高的开发效率。它提供了海量并行的支持,这对于游戏服务端的开发而言四再好不过了。
Go 开发环境部署
安装 Go
官网下载地址: https://golang.google.cn/dl/
包 go1.17.8.windows-amd64:
链接:https://pan.baidu.com/s/1KeQDcMyexZSWq3Mifjd8-A
提取码:q7oz
包下载完成后,点击安装,一直点击下一步即可
找到它所在的安装路径,配置环境变量
右击此电脑 -->属性--> 高级系统设置 --> 环境变量 --> 系统变量 --> 新建
GOROOT="go程序工作目录"
想要使用go的命令,把C:\Program Files\Go\bin 添加到系统环境变量中
系统环境变量PATH添加%GOROOT%\bin
E盘下创建 goproject 文件 --> 创建 src文件,添加到系统环境变量中
GOPATH="go项目目录"
添加代理地址
Go语言代理工具
代理网站:https://goproxy.io/zh/
# 配置 GOPROXY 环境变量
$env:GOPROXY = "https://proxy.golang.com.cn,direct"
# 还可以设置不走 proxy 的私有仓库或组,多个用逗号相隔(可选)
$env:GOPRIVATE = "git.mycompany.com,github.com/my/private"
配置环境变量
设置完以上几个环境变量后,您的go 命令将从公共代理镜像快速拉取你所需的依赖代码了。或者,还可以根据文档进行设置使其长期生效。如果您使用的是老版本的Go(<1.13),我们建议您升级为最新稳定版本。
安装开发环境 VScode
VSCodeUserSetup-x64-1.64.2
链接:https://pan.baidu.com/s/1M3P1vg6Xh2LQ3JiMhAekLw 提取码:zmof
选择创建快捷方式,其他保持默认即可
运行VScode,安装中文包
打开刚才在E盘创建的go项目的文件夹 goproject
创建文件夹,相应的本地E盘文件夹也会同步
本地查看
安装 Go 插件
编写一个简单的 go 文件,新建文件 test.go,右下角会弹出安装插件提示
最终看到如下字样为成功:
编写 go
//每个go文件都要归属一个包
package main
//导入工具包,可以使用包中的方法,函数实现相关的功能
import (
"fmt"
)
//定义程序运行的主函数(入口有且仅有1个,出口可以有多个)
func main() {
fmt.Println("hello word")
}
编写完需要运行
安装 code runner 运行插件
运行
package包波浪线说明:gomod 和 gopath 两个包管理方案,并且相互不兼容
即使项目在您的GOPATH中,GO111MODULE=on仍将强制使用Go模块。仍然需要go.mod才能正常工作。
go env -w GO111MODULE=off
在用户变量中删除变量名为GOPATH的变量和
修改用户变量中的 PATH
关闭 VScode,重新打开,会提示让您下载插件,点击下载即可
出现以下 Error 没关系,最后显示 successfully 成功就没问题
之前的test.go删除,用于测试
以目录形式去构建(适用于多个文件)
编译打包为exe文件
go run ./
不产生exe文件,使用脚本方式运行,前提是先进入代码当前目录下执行
go run test.go
go build dev_code/day1/example1
go build ./
.\example1.exe