GO系列
1、GO学习之Hello World
2、GO学习之入门语法
3、GO学习之切片操作
4、GO学习之 Map 操作
5、GO学习之 结构体 操作
6、GO学习之 通道(Channel)
7、GO学习之 多线程(goroutine)
8、GO学习之 函数(Function)
9、GO学习之 接口(Interface)
10、GO学习之 网络通信(Net/Http)
11、GO学习之 微框架(Gin)
12、GO学习之 数据库(mysql)
13、GO学习之 数据库(Redis)
14、GO学习之 搜索引擎(ElasticSearch)
15、GO学习之 消息队列(Kafka)
16、GO学习之 远程过程调用(RPC)
前言
人在江湖,身不由己,行业的发展和技术更新换代的速度,驱使着我们不断的学习新的技术,作为以JAVA为主要吃饭工具的我,如今也不得不在周末花时间看看被 “江湖人” 称后面会是主要流行的 GO 语言。
那想要入门一个新的语言,开头总归是经典款 Hello World !
一、GO语言简介
GO 语言是在2007年由三个大佬(Robert Griesemer, Rob Pike, Ken Thompson)主导开发,于2009年11月正式开源的一个开源编程语言,上面的这只可爱的地鼠就是GO语言的代言鼠。
GO语法和C、JAVA、python等略有不同,不过GO却拥有C语言的运行效率和python语言的开发简洁两大特性,不过语法限制也是比较严格的。
GO 开发完成直接可以经过编译器编译成一个可执行文件,在机器上高效的直接运行。
GO主要是要解决掉两个关键的问题,第一个是并发问题,第二个就是垃圾回收问题,一个很棒程序运行起来是不是真的效率非常棒,主要取决于是不是对内存管理的很好,把内存玩到极致才是牛,所以GO进入了JAVA中的垃圾回收机制,这样开发者就不用操心垃圾对象如何处置的问题了。
GO推崇 “最小方式” 思维,即一件事仅有一种方式实现,比如 GO 只有 for 来实现循环,没有其他的,不像 JAVA 中,你可以用 for, while, do while。
二、GO的特性
以下是GO的一些特性,有些可以明白,有些在后面实际开发中慢慢体会。
- 不到30个关键字,语法比较简洁
- 内置垃圾回收器,使开发者不用关注内存的管理,往往内存也不好管理
- 隐式类型转换,去除指针运算,提高了语言的健壮性
- 首字母大小写决定可见性,通过约定而不是声明式告诉开发者,提高阅读效率
- 不支持函数默认参数,必须明确每个参数意义
- 无面向对象的类、子类,无构造函数和析构函数
- 任何类型都可以拥有方法
- 接口只是方法的集合,其实现是隐式的(无需implements声明)
- 有 n++,n-- , 没有 ++n,–n
- 没有三目运算,也没有异常
- 内存初始化默认总是零值
- 没有字符串、切片、map 等类型
- 内存并发支持,对多核计算机支持友好,比如(goroutine、channel、select)就是并并发而生的
- 有丰富的社区和文档,工具链
三、编译环境准备
3.1 安装GO
首先从官网下载GO,选择对应的版本下载,在 1.18以上即可,不需要最新的,有可能不稳定。
选择稳定版本下载,windows可选择下载 .msi 安装包,其他版本自信选择。
安装直接下一步即可,主要注意安装的路径,如下图,我选择安装 D:\Program Files\Go\ 下面。
安装好之后在 cmd 命令窗口运行 go version 查看安装的版本,成功运行即安装成功。
接下来要配置环境变量,这是必不可少的。
环境变量主要配置 GOPROXY(代理) 环境变量,用于拉取库使用,这里使用华为云、阿里云都行。
GOPATH 和 Path 环境变量安装好GO编译环境之后则已经有了
,没有的话需要配置,GOPATH是拉取的函数库目录地址,也就是GO ROOT目录,Path 则是GO安装目录地址。
那GOPROXY配置的代理地址怎么找呢,如下图:
https://mirrors.aliyun.com/goproxy/
如果是linux 环境则直接使用这个配置,windows环境复制这个代理地址即可。
3.2 vscode 编写GO
vscode 安装也很简单,而且网上有各种资料供参考,vscode安装好之后我们需要安装支持 GO 编写的插件。
第一个插件是 GO 插件,如下图:
第二个插件是 outline map,以便我们查看源代码,如下图:
四、简单的 main 函数
GO编译环境安装完成,VSCODE插件也安装完成,我们来写一个 Hello World 程序。
我们新建一个工作目录,然后新建一个文件,命名为 main.go 并保存,此时 VSCODE 会提示安装需要的插件,在编辑器右下角,我们选择 install all即可。
第一个需要安装的是 gopls,这个有可能安装不成功,需要多试一下,这个是为了我们编写代码的时候能够友好的提示我们。
第二个需要安装的是 dlv,这个是GO的调试器,go-delve。
接下来就来写一个 Hello World 的GO程序,可以输入 pkgm,工具会有提示,直接帮我们生成好固定代码。
package main
import (
"fmt"
)
func main() {
fmt.Println("Hello World!!!")
}
接下来执行看一下结果,运行结果如下:
在 TERMINAL 窗口中运行 go run main.go 就可以看到结果了,记得先保存代码,vscode 不会自动保存。
五、总结
到这里如果你不出什么问题的话,一个可以用的GO开发环境就算是安装好了,接下来就是去学习GO的相关语法了,GO的语法和JAVA、C、python 等语言还是有所不同的,需要耐心学习,并且能参与到项目开发则会很快成长了。
目前还没有接触到GO开发的项目,不过GO的开发方向也挺多的,游戏后端,云平台等都是比较适合的,目前很多大厂也用GO做云平台开发产品了,所以提前向了解起来,有时间写一下DEMO,若有机会,即可大展身手了。