IT干货栈 · 2019年09月25日

Go语言入门教程(一)

GO语言发展史

Go语言是2009年11月,由谷歌公司发布的一款强静态类型、编译型语言。它具有C语言的语法特性,但功能上又具备内存安全,垃圾回收,结构形态和并行计算等特点。

对于广大的开发者的一个福音是go完全开源。在云原生,云计算的今天,Go语言又被称之为云计算时代的C语言,它诞生的目的是为了让广大程序员们具有快速的开发效率,因为它专门针对多处理器系统应用应用程序提供了优化。

GO语言的优势

1、go具有天然的并发优势,特别是针对于高并发,多线程的开发,它能够完美并且简单的大显身手。

2、他可以直接编译成机器码,不依赖其他库,也无需像java一样需要安装虚拟机进行过渡。

3、具有丰富的标准库,特别是网络库这一块非常强大。

4、高度活跃的社区群,一个语言发展自然离不开社区的支持,Go语言具有良好且活跃的社区,各类高手纷纷为Go语言的丰富增砖添瓦。

5、Go语言内置强大的工具,例如fmt 自动化格式代码,能够让团队成员的codereview 变得简单,且格式统一。

GO的应用场景

1、服务器编程,以前你如果使用C或者C++做的那些事情,用Go来做很合适,例如处理日志、数据打包、虚拟机处理、文件系统等。

2、分布式系统,数据库代理器等。

3、网络编程,这一块目前应用最广,包括Web应用、API应用、下载应用。

4、内存数据库,如google开发的groupcache,couchbase的部分组建。

5、云平台,例如现目前很火爆的k8s 也是利用go语言进行开发完成

当然讲了这么多,那么小编接下来针对Go语言为大家带来go语言的入门到精通的编程系列教程。当然也是希望大家能够勤学多练,一步一个脚印。

MON
04

GO的搭建环境

总所周知,要学习任何一门语言,首先的就是要先安装运行环境,当然go语言也不例外,首先我们需要下载Go语言的安装包,如图所示:
file

这里go为大家提供了不同平台的版本,由于我这里所使用的是windows版本的,所以下载的是widows 64位。

下载好之后一路双击msi,然后按照步骤一路点点点即可(PS:值得注意的点是安装路径不要有中文名)。直到这里go语言的安装已经完成了80%了,是不是很简单。

接下来的重点就是为大家介绍一下go语言的环境变量了,go语言中常用的配置变量有两个GOROOT和GOPATH,当然也存在其他的变量。

1、GOROOT:go的安装目录,配置后不会再更改;

file

2、$PATH:需要将go的bin目录添加到系统$PATH中以便方便使用go的相关命令,配置后也不会再更改;

file

3、$GOPATH:go项目在本地的开发环境的的项目根路径(以便项目编译,go build, go install),不同的项目在编译的时候该环境变量可以不同,当然GOPATH可以有一个或者多个的存在,但是GOROOT只能有一个。

file

当我们配置好环境变量后,小伙伴们就可以运行cmd命令查看go语言的环境是否安装完成了。

运行命令 go version 之后,如果出现以下的画面,那么就代表各位已经成功安装好环境,我们就可以愉快的进行Go语言的代码编写啦!

file

GO的代码工具

针对于go语言的开发,开发工具有很多,例如:

1、LiteIDE 是一款开源、跨平台的轻量级 Go 语言集成开发环境(IDE)。

2、eclipse 但是在eclipse上进行go语言的开发,需要下载插件

3、GoLand (推荐)GoLand 是 Jetbrains 家族的 Go 语言 IDE,专门为Go语言开发而成,非常好用,以后小编的代码讲解也是基于goland 为大家讲解。

加餐时间:因为Go语言是非常强大的一门语言,所以内置了很多处理go语言代码的命令和工具,这里常用一些命令给小伙伴罗列出来,以防不时之需。

build:用于编译给定的代码包或Go语言源码文件及其依赖包。
clean:用于清除执行其他go命令后遗留的目录和文件。
doc:用于执行godoc命令以打印指定代码包。
env:用于打印Go语言环境信息。
fix:用于执行go tool fix命令以修正给定代码包的源码文件中包含的过时语法和代码调用。
fmt:用于执行gofmt命令以格式化给定代码包中的源码文件。
get:用于下载和安装给定代码包及其依赖包(提前安装git或hg)。
list:用于显示给定代码包的信息。
run:用于编译并运行给定的命令源码文件。
install:编译包文件并编译整个程序。
test:用于测试给定的代码包。
tool:用于运行Go语言的特殊工具。
version:用于显示当前安装的Go语言的版本信息。

今天的分享就到此结束了,我们了解到了关于go语言的发展和优势,然后又对go语言的开发环境进行了讲解,下节课我将为大家带来精心准备的Go语言教程系列之初窥门径。

推荐阅读
关注数
4
文章数
15
公众号“IT干货栈”,每天分享java、go、Python,大数据、人工智能等系列干货,你我共同进步
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息