GO语言介绍及开发环境搭建

发展史

Go 语言发展至今已经过去十年多了,是目前最流行的新兴语言,云计算领域的首选语言,而且目前随着区块链的流行,Go 再次成为了这个领域的第一语言,以太坊,IBM 的 fabric 等重量级的区块链项目都是基于 Go 开发的。

Go语言也叫做Golang,go语言的全称:“go programming language”,Go语言通常被叫做Golang的原因主要有两个:

1、go.org域名被注册了,所以Go只能用golang.org作为官网域名;
2、go太广泛了,搜索引擎不能很好的识别,搜索golang更能缩小范围精确的找到答案。

 

特点

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、Go语言为并发而生
Go于2009年发布,当时多核处理器已经上市。Go语言在多核并发上拥有原生的设计优势,Go语言从底层原生支持并发,无须第三方库、开发者的编程技巧和开发经验。
很多公司,特别是中国的互联网公司,即将或者已经完成了使用 Go 语言改造旧系统的过程。经过 Go 语言重构的系统能使用更少的硬件资源获得更高的并发和I/O吞吐表现。充分挖掘硬件设备的潜力,也满足当前精细化运营的市场大环境。

2、Go语言性能强悍
与其他现代高级语言(如Java/Python)相比,使用C,C++的最大好处是它们的性能。因为C/ C++是编译型语言而不是解释的语言。同C,C++一样,Go语言也是编译型的语言,它直接将人类可读的代码编译成了处理器可以直接运行的二进制文件,执行效率更高,性能更好。

3、Go语言简单易学
1)语法简洁:
Go 语言简单易学,学习曲线平缓,不需要像 C/C++ 语言动辄需要两到三年的学习期。Go 语言被称为“互联网时代的C语言”。Go 语言的风格类似于C语言。其语法在C语言的基础上进行了大幅的简化,去掉了不需要的表达式括号,循环也只有 for 一种表示方法,就可以实现数值、键值等各种遍历。
2)代码风格统一
Go 语言提供了一套格式化工具go fmt。一些 Go 语言的开发环境或者编辑器在保存时,都会使用格式化工具进行修改代码的格式化,这样就保证了不同开发者提交的代码都是统一的格式。
3)开发效率高
Go语言实现了开发效率与执行效率的完美结合,让你像写Python代码(效率)一样编写C代码(性能)

4、发展前景好
目前Go语言已经⼴泛应用于人工智能、云计算开发、容器虚拟化、⼤数据开发、数据分析及科学计算、运维开发、爬虫开发、游戏开发等领域。
Go语言简单易学,天生支持并发,完美契合当下高并发的互联网生态。Go语言的岗位需求持续高涨,目前的Go程序员数量少,待遇好。
国内Go语言的需求潜力巨大,目前无论是国内大厂还是新兴互联网公司基本上都会有Go语言的岗位需求。除了大厂外,很多小型公司或创业公司也开始使用Go语言,并且很多公司把Go语言作为其主要开发语言。

 

下载

Go官网下载地址:https://golang.org/dl/

Go官方镜像站(推荐):https://golang.google.cn/dl/

安装

图片[1] - GO语言介绍及开发环境搭建 - 捕风阁

安装完后将bin目录添加系统变量path,如果变量里面已经自动添加了就不用再添加了

查看是否安装成功
// go version

图片[2] - GO语言介绍及开发环境搭建 - 捕风阁

 

GOPATH

GOPATH为我们的工作目录,可以在终端输入go env 查看路径

图片[3] - GO语言介绍及开发环境搭建 - 捕风阁

 

 

GOPROXY 代理

Go1.14版本之后,都推荐使用go mod模式来管理依赖环境了,也不再强制我们把代码必须写在GOPATH下面的src目录了,你可以在你电脑的任意位置编写go代码。(网上有些教程适用于1.11版本之前。)

默认GoPROXY配置是:

GOPROXY=https://proxy.golang.org,direct

由于国内访问不到https://proxy.golang.org,

所以我们需要换一个PROXY,

这里推荐使用https://goproxy.io或https://goproxy.cn。

可以执行下面的命令修改GOPROXY:

go env -w GOPROXY=https://goproxy.cn,direct

图片[4] - GO语言介绍及开发环境搭建 - 捕风阁

 

GOPRIVATE

可以设置GOPRIVATE来跳过私有库,控制私有库不走代理

例如:git.mycompany.com,github.com/my/private

 

编辑器

Go采用的是UTF-8编码的文本文件存放源代码,理论上使用任何一款文本编辑器都可以做Go语言开发

VS Code是微软开源的编辑器,而Goland是jetbrains出品的付费IDE。

 

框架

go语言使用的框架有:

1、Beego框架;2、Buffalo框架;3、Echo框架;4、Gin框架;5、Iris框架;6、Revel框架。

Beego: 一个Go语言下开源的,高性能Web框架

Buffalo: 一个Go语言下快速Web开发框架

Echo: 一个高性能,极简的Web框架

Gin: 一个Go语言写的HTTP Web框架。它提供了Martini风格的API并有更好的性能。

Iris: 目前发展最快的Go Web框架。提供完整的MVC功能并且面向未来。

Revel: 一个高生产率,全栈Go语言的Web框架。

 

其他

常用命令

启动

go run main.go

 

热加载

所谓热加载就是当我们对代码进行修改时,程序能够自动重新加载并执行,这在我们开发中 是非常便利的,可以快速进行代码测试,省去了每次手动重新编译

工具一https://github.com/gravityblast/fresh

安装fresh(在GOPATH下bin目录下有fresh.exe,没有的话,就是安装失败)

go get github.com/pilu/fresh

启动

fresh

注意:当运行fresh出现下列错误的时候的解决办法

fresh : 无法将“fresh”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。
所在位置 行:1 字符: 1
+ fresh
+ ~~~~~
    + CategoryInfo          : ObjectNotFound: (fresh:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

1.手动下载fresh包

git clone https://github.com/gravityblast/fresh.git

2.安装fresh

go install github.com/pilu/fresh@latest

3.在GOPATH下bin目录下有fresh.exe说明安装成功

 

工具二https://github.com/codegangsta/gin

go get github.com/codegangsta/gin
gin run main.go

 

打包

go build 基本用法

go build [-o output] [-i] [build flags] [packages]

以 IDEA GoLand为例: 在 下方的Terminal命令行中输入

go build -o  要生成的文件名.exe  main.go

会将main.go涉及到的文件都编译打包好,放在当前目录下

 

打包成可在windows运行的exe文件

打包成exe后缀文件,在windows上可以直接运行

首先,进入到main.go文件目录下,执行以下命令

go build main.go

 

打包成可在linux运行的文件

打包成二进制文件,可以在linux平台运行

首先,进入到main.go文件目录下,执行以下命令

set GOARCH=amd64
set GOOS=linux

GOOS指的是目标操作系统,支持以下操作系统
darwin freebsd linux windows android dragonfly netbsd openbsd plan9 solaris

GOARCH指的是目标处理器的架构,支持一下处理器架构
arm arm64 386 amd64 ppc64 ppc64le mips64 mips64le s390x

设置好了目标操作系统与目标处理器的架构后,我们对main.go文件执行go build 命令了,就可以得到我们想要的目标文件了。

go build main.go

go bulid 后就会在这个目录下生成打包好的Go项目文件了,是linux平台可执行的二进制文件。

将该文件放入linux系统某个文件夹下,不需要go的任何依赖,就可以直接运行了

# 赋予执行权限
chmod +x ./文件名

# 启动 
./文件名

 

 

参考文档:https://blog.csdn.net/yujia_666/article/details/121707310

 

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享
抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容