1 Go语言简介
Go语言(或 Golang)起源于 2007 年,并在 2009 年正式对外发布,是由 Google 公司开发的一种静态强类型、编译型、并发型、并具有垃圾回收功能的编程语言。Go 是非常年轻的一门语言,它的主要目标是“兼具 Python 等动态语言的开发速度和 C/C++ 等编译型语言的性能与安全性”。
1.1 Go语言特性
-
语法简单
Go语言的语法规则严谨,没有歧义,更没什么黑魔法变异用法。任何人写出的代码都基本一致,这使得Go语言简单易学。放弃部分“灵活”和“自由”,换来更好的维护性。将“++”、“--”从运算符降级为语句,保留指针,但默认阻止指针运算,带来的好处是显而易见的。还有,将切片和字典作为内置类型,从运行时的层面进行优化,这也算是一种“简单”。
-
并发模式
Go从根本上将一切都并发化,运行时用 Goroutine 运行所有的一切,包括 main.main 入口函数。可以说,Goroutine 是 Go 最显著的特征。它用类协程的方式来处理并发单元,却又在运行时层面做了更深度的优化处理。这使得语法上的并发编程变得极为容易,无须处理回调,无须关注线程切换,仅一个关键字,简单而自然。
-
内存分配
除偶尔因性能问题而被迫采用对象池和自主内存管理外,我们基本无须参与内存管理操作。
-
垃圾回收
Go 的 1.5 版本实现并发标记,逐步引入三色标记和写屏障等等,都是为了能让垃圾回收在不影响用户逻辑的情况下更好地工作。
-
静态链接
运行时、依赖库直接打包到可执行文件内部,简化了部署和发布操作,无须事先安装运行环境和下载诸多第三方库。
-
标准库
Go 标准库虽称不得完全覆盖,但也算极为丰富。其中值得称道的是 net/http,仅须简单几条语句就能实现一个高性能 Web Server。
-
工具链
无论是编译、格式化、错误检查、帮助文档,还是第三方包下载、更新都有对应的工具。内置完整测试框架,其中包括单元测试、性能测试、代码覆盖率、数据竞争,以及用来调优的 pprof。除此之外,还可通过环境变量输出运行时监控信息,尤其是垃圾回收和并发调度跟踪,可进一步帮助我们改进算法,获得更佳的运行期表现。
1.2 Go语言集成开发环境
-
Goland
Goland 是由 JetBrains 公司开发的一个新的商业 IDE,旨在为 Go 开发者提供的一个符合人体工程学的新的商业 IDE。Goland 整合了 IntelliJ 平台(一个用于 java 语言开发的集成环境,也可用于其他开发语言),提供了针对Go语言的编码辅助和工具集成。
-
LiteIDE
LiteIDE是一款专门针对 Go 开发的集成开发环境,在编辑、编译和运行 Go 程序和项目方面都有非常好的支持。是一款非常好用的轻量级 Go 集成开发环境(基于 QT、Kate 和 SciTE),包含了跨平台开发及其它必要的特性,对代码编写、自动补全和运行调试都有极佳的支持。它采用了 Go 项目的概念来对项目文件进行浏览和管理,它还支持在各个 Go 开发环境之间随意切换以及交叉编译的功能。同时,它具备了抽象语法树视图的功能,可以清楚地纵览项目中的常量、变量、函数、不同类型以及他们的属性和方法。
-
Visual Studio Code(简称VS Code)
是一款由微软公司开发的,能运行在 Mac OS X、Windows 和 Linux 上的跨平台开源代码编辑器。VS Code 使用 JSON 格式的配置文件进行所有功能和特性的配置,同时它还可以通过扩展程序为编辑器实现编程语言高亮、参数提示、编译、调试、文档生成等各种功能。
2 Go开发环境搭建
2.1 基本步骤
这里我们以Ubuntu系统为例,搭建VS Code的Go语言集成开发环境
-
下载Go语言安装包和VS Code并在自定义目录下解压
-
添加环境变量和工作变量到系统环境中
-
查看当前Go版本,判断是否配置成功
-
输出测试代码,判断是否安装成功
-
完成搭建
2.2 安装GoLang
-
在GO语言官网下载Linux版本安装包
-
下载成功后放入自定义目录下进行解压
sudo tar -xzvf go1.14.10.linux-amd64.tar.gz
-
在该自定义目录下再创建一个文件夹,作为Go工作环境,即GOPATH路径
mkdir gopath
-
环境配置
-
打开终端,对profile文件进行编辑
sudo vim /etc/profile
-
在打开的文件中,在文件最后输入以下代码,其中,GOROOT代表的是GO安装文件的存放位置,GOPATH放的是资源目录的位置,即上述我们新创建的文件夹。大家根据自己的存放位置进行调整。
export GOPATH=/home/roger/Documents/gopath export GOROOT=/home/roger/Documents/go export GOARCH=amd64 export GOOS=linux export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
-
编辑完成后,保存并退出
-
通过终端输入命令查看安装与环境配置是否成功。出现配置信息则代表配置成功。
go env
-
2.3 安装必要工具和插件
-
在GOPATH目录下,创建src/github.com/golang/文件夹,以及src/golang.org/x/文件夹。不存在的话可以手动创建每级目录。 打开终端,输入:
git clone github.com/golang/tools.git
-
下载完成后,可以通过文件管理器将github.com/golang下的tools文件夹复制到golang.org/x文件夹下。 随后,在终端中执行
go install golang.org/x/tools/go/buildutil
-
打开VS Code,编写一个.go文件,在右下角提示中进行安装
这个阶段可能因为防火墙原因还是无法自动安装,那么就需要手动在GOPATH目录下一个一个进行手动安装刚刚clone的文件
注意:如果还是clone和安装失败,则只有在网上找第三方资源或者从安装好环境里进行拷贝。
-
一切完成后就可以开始编写测试代码了。
2.4 测试
注意:我们的项目源代码需要放在GOPATH目录下的src文件夹中。
例如:在$GOPATH下建立hello文件夹,里面创建main.go文件。
编写好后进行保存,如果没有语法错误则会默认生成与文件夹同名的可执行文件hello
输入go run hello.go
成功运行后则代表环境搭建成功,可以进行项目创作了。