学习任何知识之前肯定要对这个知识有一个简单的了解,当然学习 Go 语言也一样,这个小节我们就来简单认识下 Go 语言,了解下 Go 语言的来龙去脉。
1. Go 语言的出身
Go(又称 golang)是 Google 开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。
罗伯特·格里泽默(Robert Griesemer),罗布·派克(Rob Pike)及肯·汤普逊(Ken Thompson)于 2007 年 9 月开始设计 Go,后来 Ian Lance Taylor、Russ Cox 加入项目。Go 是基于 Inferno 操作系统所开发的,于 2009 年 11 月正式宣布推出,成为开放源代码项目,并在 Linux 及 Mac OS X 平台上进行了实现,后来追加了 Windows 系统下的实现。在 2016 年,Go 被软件评价公司 TIOBE 选为“TIOBE 2016 年最佳语言”。目前,Go 已经开始每半年发布一个二级版本(即从 a.x 升级到 a.y)。
2. Go 语言的特点
Go 语言可以直接编译成主流操作系统支持的可执行文件,部署服务只需要扔一个可执行文件上去直接运行就好了;
Go 语言有不输于动态语言的丰富静态库。归功于强大的官方团队和社区,目前 Go 语言几乎什么都可以开发;
Go 语言天生支持并发,这是个近乎无敌的设定;
Go 语言具有自动垃圾回收机制;
Go 语言简单易学,因为它几乎支持常用的语言的所有特性:继承、封装等等;
Go 语言内嵌支持 C 语言,你甚至可以直接在 Go 语言里面写 C 语言代码;
Go 语言支持交叉编译,你可以在 Windows 环境中编译任何平台的 Go 可执行程序。但是需要注意的是,如果你在 Go 程序中写了 C 语言,你就不能只用交叉编译的特性了,所谓鱼和熊掌不可兼得嘛。
3. Go 语言的使用场景
服务器编程;
分布式系统,数据库代理器;
网络编程,这一块目前应用最广,包括 Web 应用、API 应用、下载应用;
内存数据库,前一段时间 Google 开发的 groupcache,couchbase 的部分组件;
云平台,目前国外很多云平台在采用 Go 开发,CloudFoundy 的部分组件,前 VMare 的技术总监自己出来搞的apcera 云平台;
区块链技术研发。
4. Go 语言开发的经典项目
Docker:基于 lxc 的一个虚拟打包工具,能够实现 PAAS 平台的组建。
Hyperledger fabric:市面上最流行的两大区块链平台之一。
5. 与其他开发语言对比
Go 语言为什么能在现有的成熟语言中脱颖而出呢?这要归功于它比 Java 还简洁的语法,接近 C 语言的编译执行速度,甚至还有不亚于脚本语言的开发速度。在目前最要求效率的当下,它无疑会是一匹黑马。但是和其它语言比起来劣势也很明显,因为它出现的时间短,学习资料少,第三方支持库虽然多,但是比起 Java 以及 C 语言还是远远不够。Go 语言不支持泛型,对于学习 Java 的开发人员来说一开始会很不适应。
6. 为什么要学习 Go 语言
综上所述, Go 语言出身名门,血统纯正。从学习难度上来说语法简单,功能强大。从可扩展性上来说第三方库众多,标准库强大稳定。性能上更是拥有无可挑剔的自动调度线程。Go 语言完美地协调了运行效率和开发效率之间的关系。而且 Go 语言目前已经广泛应用于虚拟容器、区块链等传统的和高精尖的产业中,将来会有巨大的前景。不管是国内还是国外,对 Go 语言的程序员的需求只会越来越多。
7. Go 语言的代码
接下来我们来看看 Go 语言怎么用代码来和你 say hello。
package main
import "fmt"
func main() {
fmt.Println("Hello Codey !")
}
上述代码的输出结果就是:Hello Codey !
8. 小结
Go 语言目前的用途主要是在服务器和区块链上。但是它的功能不止于此,需要我们多去开发多去使用,使得 Go 语言的生态更加完整,更加强大。
Go 语言在 Windows 上的安装及配置既然要学习 Go 语言,那么肯定要在本机安装 Go 语言的开发环境,这节课我们就来学习下如何在 Windows 操作系统下安装 Go 语言的开发环境:
1. Go 语言的下载
Tips:本文以本文撰写时的 Go 语言最新版本,也就是 go.1.13.5 版本为例,操作系统为 Windows10 操作系统。
1.1 下载语言包
和大部分编程语言一样,想要使用 Go 语言,就必须安装 Go 语言的编译环境,使我们写的 Go 代码编译为计算机能"看懂"的语言。我们可以通过以下两个链接下载到 Go 语言的编译环境:
Golang官网
Golang中文网
两个网站打开的内容只有语言不同而已,网站上清晰的标注了不同操作系统需要对应安装哪个版本,其中加粗的 是该操作系统的推荐版本。我们下载 windows 需要的版本就好了,为了更容易理解整个安装过程,我们下载需要手动配置的版本。
1.2 解压语言包
将下载好 zip 文件解压到电脑中任意位置,解压后将得到如下 Go 环境文件夹,文件列表如下:
2. Go 语言的安装配置
得到完整的 Go 环境之后,需要配置 Go 的环境变量,右击此电脑->属性->高级系统设置->环境变量,打开环境变量设置窗口。
需要新建两个环境变量配置,一个是 GOROOT ,这个就是 Go 环境所在目录的配置。另一个是 GOPATH ,这个是 Go 项目的工作目录,你以后开发的代码就写在这个文件夹中。
G:\Work\ProgramLang\go
G:\Work\ProgramWorkSpace\go\library;G:\Work\ProgramWorkSpace\go\workspace
%GOROOT%\bin
go version
3. 视频演示安装过程
3. 小结
本文主要学习了 Go 语言在 Windows 操作系统中的安装和配置。其中 GOPATH 这个环境变量可以只配置一个,配置多个是一个程序员包和自己的源码分开管理的习惯。
Go 语言在 Linux 上的安装与配置既然要学习 Go 语言,那么肯定要在本机安装 Go 语言的开发环境,上节课我们学习了如何在 Windows 操作系统上安装 Go 语言开发环境,这节课我们来学习下如何在 Linux 操作系统上安装 Go 语言开发环境:
1. Go 语言的下载
Tips:本文以本文撰写时的 Go 语言最新版本,也就是 go.1.13.5 版本为例。Linux 发行版本使用 Ubuntu18.04 为例来做演示。
1.1 下载语言包
下载 Linux 版本的 Go 语言环境压缩包,在 Linux 终端中输入下面这条命令:
wget https://dl.google.com/go/go1.13.5.linux-amd64.tar.gz
1.2 解压语言包
/usr/local/usr/local/go
sudo tar -C /usr/local -zxvf go1.13.5.linux-amd64.tar.gz
2. Go语言的安装配置
得到完整的 Go 语言环境之后,我们需要将其可执行文件路径配置到环境变量中,使其在任何一个目录均可使用。如果你是 root 账号,可以不加 sudo。
sudo vi /etc/profile
在打开的文件末尾加入环境变量配置,需要配置 GOPATH 和 GOROOT ,出于个人习惯,建议 GOPATH 配置两个,第一个用于存储 Go 语言的第三方包,第二个用于存储自己开发的代码。
export GOROOT=/usr/local/go
export PATH="$PATH:$GOROOT/bin"
export GOPATH=$HOME/go/lib:$HOME/go/work
环境变量配置完毕后使用 source 指令来使环境变量生效。
source /etc/profile
最后验证安装成功,输出正确的版本号。
go version
3. 视频演示安装过程
4. 小结
本文主要学习了 Go 语言在 Ubuntu 操作系统中的安装和配置。其中 GOPATH 这个环境变量可以只配置一个,配置多个是一个程序员包和自己的源码分开管理的习惯。
Go 语言在 MacOS 上的安装及配置既然要学习 Go 语言,那么肯定要在本机安装 Go 语言的开发环境,这节课我们就来学习下如何在 Windows 操作系统下安装 Go 语言的开发环境:
1. Go 语言的下载
注:本文以本文撰写时的 Go 语言最新版本,也就是 go.1.13.8 版本为例*。*
1.1 Go语言的下载
下载 MacOS 版本的 Go 语言环境压缩包:
curl -O /dl/golang/go1.13.8.darwin-amd64.tar.gz
1.2 解压Go文件
解压文件:
sudo tar -C /usr/local -zxvf go1.13.8.darwin-amd64.tar.gz
2.Go语言的安装配置
得到完整的 Go 语言环境之后,我们需要将其可执行文件路径配置到环境变量中,使其在任何一个目录均可使用。如果你是管理员账号,可以不加 sudo :
sudo vi /etc/profile
在打开的文件末尾加入环境变量配置,需要配置 GOPATH 和 GOROOT ,处于个人习惯,建议 GOPATH 配置两个,第一个用于存储 Go 语言的第三方包,第二个用于存储自己开发的代码:
export GOROOT=/usr/local/go
export PATH="$PATH:$GOROOT/bin"
export GOPATH=$HOME/go/lib:$HOME/go/work
完毕后使用 source 指令来使环境变量生效:
source /etc/profile
go version
go version go1.13.8 darwin/amd64
3.小结
本文主要学习了 Go 语言在 MacOS 操作系统中的安装和配置。其中 GOPATH 这个环境变量可以只配置一个,配置多个是一个程序员包和自己的源码分开管理的习惯。
Git 的下载和安装因为 Go 语言是一门开源的语言,所以它的源代码以及很多的官方库,都是发布在 github 上的。安装了 Git 了之后,再配合 Go 语言的开发工具和命令,可以使开发事半功倍,其中代码的自动导包,智能提示,都是依赖 Go 语言的开发插件,这些插件的更新和下载主要都依赖于 Git,所以如果想要舒舒服服的学习 Go 语言的话 Git 是必不可少的,那么本文将主要介绍 Git 的下载和安装:
1. windows 下安装
1.1 Git 的下载
要下载 Git 的话直接打开 Git 的官网 下载最新的安装包即可:
1.2 Git 的安装
git version
如果出现下图类似的提示,可能是在安装的时候环境变量自动配置失败,这时候就需要我们自己手动配置一下环境变量:
C:\Program Files\Git\cmd
git version
3. 视频演示安装过程
3. 小结
本文主要学习了 Go 语言在 Windows 操作系统中的安装和配置。其中 GOPATH 这个环境变量可以只配置一个,配置多个是一个程序员包和自己的源码分开管理的习惯。
2. Linux 下安装 Git
Linux 下安装 Git 非常的简单,只需要一条命令即可:
sudo apt-get install git -y
代码块
1
安装成功后使用 git version 来验证安装结果,输出版本号则安装成功。
视频演示安装过程:
3. 小结
本文主要学习了 Git 这个软件的安装,以及在 Windows 操作系统中可能会出现的常见问题的解决。注意下环境变量的问题,这个问题在 Windows 上安装各种环境和依赖的时候都有可能会出现。
VSCode 编辑器安装和配置工欲善其事,必先利其器。想要学好 Go 语言,肯定要有一个趁手的开发工具,Go 语言的开发工具有很多种,本文会给大家介绍一种使用面积最广泛、免费且开源的 Go 语言开发工具—— VSCode。
1. VSCode的简介
VSCode (Visual Studio Code)是微软在 2015 年 4 月 30 日 Build 开发者大会上发布的一款开源、免费而且可以跨平台使用的代码编辑器,其具有使用简单、插件丰富以及功能强大等优点。一经推出就受到很多开发者的追捧,其对于 Go 语言的支持也是非常的优秀,故而在 Go 语言基础中推荐介绍这个代码编辑器。
2. VSCode的下载和安装
直接从官网下载合适的安装包即可。官网地址:/
安装包下载完成之后直接双击安装包,VSCode 的安装是傻瓜式的安装,一直点击下一步即可。
3. VSCode的中文配置
Ctrl+Shift+P
选择 Configure Display Language:
如果只有一个英文的选项的话,我们选择下面的 install additional language… 来下载新的语言包:
选择第一个简体中文,点击右下角的 install ,安装成功之后会要求你重新启动 VSCode ,点击 Yes ,会自动重启 VSCode。
再次出现后的 VSCode 就是中文的了:
4. VSCode 配置 Go 语言开发环境
安装结束之后就需要配置 Go 语言的开发环境了。因为 Go 语言的插件很多链接无法直接访问,所以我们需要手动链接,可以打开任意的 go 文件,这样 VSCode 会自动帮你安装 Go 的插件。
golang.org\x%GOPATH%\src\``golang.org\x
git clone https://github.com/golang/tools.git
然后使用下列命令来安装 Go 语言的插件:
go get github.com/ramya-rao-a/go-outline
go get github.com/acroca/go-symbols
go get golang.org/x/tools/cmd/guru
go get golang.org/x/tools/cmd/gorename
go get github.com/josharian/impl
go get github.com/rogpeppe/godef
go get github.com/sqs/goreturns
go get github.com/golang/lint/golint
go get github.com/cweill/gotests/gotests
%GOAPTH%/bin
最后一步就是在 VSCode 中安装 Go 语言的高亮插件,在插件库搜索 go,第一个就是,直接点击安装即可:
5. Go 语言的 HelloWorld
%GOPATH%/src
在 src 文件夹下新建一个任意名称的文件夹,并在这个文件夹下新建一个文件 helloworld.go,并使用 VSCode 打开这个文件夹。在 helloworld.go 文件中键入代码:
package main
import "fmt"
func main() {
fmt.Println("Hello World!")
}代码块
1
2
3
4
5
6
7
我们来对这一段简单的 Go 语言代码逐行来解释下:
第 1 行:这一行是包名,Go 语言中每一个文件开头都是包名,只有 main 函数的包名字可以叫 main;
第 3 行:这一行的作用是导入包,是将在这个 Go 文件中使用到的 Go 语言官方库,或者第三方库导入进来;
第 5 行:主函数声明,main 函数是每一个 Go 程序的入口;
第 6 行:输出语句。将 “Hello World !” 输出到控制台。
右击这个文件,选中在终端中打开。
helloworld.go
go run helloworld.go
代码块
1
得到执行结果,可以看到,在终端中已经输出了 Hello World!
6. 小结
本文主要学习了在 VSCode 上搭建一个 Go 语言的开发环境。其中需要注意的主要就是无法下载到 Go 语言插件的解决方案,使用 github上官方的开源库,手动进行修改路径和安装即可。
Go 语言的变量声明从这节课开始我们就要正式开始学习 Go 语言的语法了,本文主要介绍了 Go 语言在代码中声明变量的几种方式,在 Go 语言中变量声明形式主要分为两种:
单变量声明
多变量声明
下面我们一一来看下这两种声明形式:
1. 单变量声明
varvar 变量名 变量类型
package main
import "fmt"
func main() {
var helloWorld string
helloWorld = "Hello World!"
fmt.Println(helloWorld)
}
第 6 行:声明一个叫 helloWorld 的 string 类型变量,数据类型表明这个变量内会存储什么类型的数据;
第 7 行:给 helloWorld 这个变量赋值为"Hello World!";
第 8 行:输出 helloWorld 变量的值。
Tips:关于变量的数据类型我们会在后面的小节进行讲解。
上面代码运行后输出结果:
2. 多变量声明
varvar 变量名1,变量名2 变量类型,
package main
import "fmt"
func main() {
var hello, world string
hello = "Hello"
world = "World!"
fmt.Println(hello, world)
}
第 6 行:声明两个分别叫 hello 和 world 的 string 类型变量;
第 7 行:给 hello 和 world 变量分别赋值为 “Hello” 和 “World!”;
第 8 行:输出 hello 和 world 变量的值。
输出结果:
3. 小结
var