一、为何而生
goroutinegoroutinegoroutinegoroutinegoroutinegoroutinegoroutine 

a、goroutine 具有可增长的分段堆栈。这意味着它们只在需要时才会使用更多内存。
b、goroutine 的启动时间比线程快。
c、goroutine 原生支持利用 channel 安全地进行通信。
d、goroutine 共享数据结构时无需使用互斥锁。

二、优势是什么?

语法简洁

Go 语言简单易学,学习曲线平缓,不需要像 C/C++ 语言动辄需要两到三年的学习期。Go 语言被称为“互联网时代的 C 语言”。Go 语言的风格类似于 C 语言。其语法在 C 语言的基础上进行了大幅的简化,去掉了不需要的表达式括号,循环也只有 for 一种表示方法,就可以实现数值、键值等各种遍历。

代码风格统一

Go 语言提供了一套格式化工具 —— go fmt。一些 Go 语言的开发环境或者编辑器在保存时,都会使用格式化工具进行修改代码的格式化,这样就保证了不同开发者提交的代码都是统一的格式。

开发效率高

 Go 语言实现了开发效率与执行效率的完美结合,让你像写 Python 代码(效率)一样编写 C 代码(性能)。

三、使用 Go 语言的公司 四、Go 语言适合做什么
  • 服务端开发
  • 分布式系统,微服务
  • 网络编程
  • 区块链开发
  • 内存 KV 数据库,例如 boltDB、levelDB
  • 云平台
五、Go 语言的前景

目前 Go 语言已经⼴泛应用于人工智能、云计算开发、容器虚拟化、⼤数据开发、数据分析及科学计算、运维开发、爬虫开发、游戏开发等领域。Go 语言简单易学,天生支持并发,完美契合当下高并发的互联网生态。Go 语言的岗位需求持续高涨,目前的 Go 程序员数量少,待遇好。抓住趋势,要学会做一个领跑者而不是跟随者。国内 Go 语言的需求潜力巨大,目前无论是国内大厂还是新兴互联网公司基本上都会有 Go 语言的岗位需求。

六、Go 开发入门

开发环境安装

Go官网(https://golang.org/dl/ ) 下载安装包。以下以 Windows 环境为例:

 Windows 安装

验证安装

配置环境变量

GOPATH goGOPATH GOPATHsrc

GOPATH Go path Go GOPATH 

在 GOPATH 目录下新建 3 个文件夹

 Go 项目目录

Go $GOPATH/src go buildgo install go get $GOPATH/src $GOPATH/bin $GOPATH/pkgGit $GOPATH/src binpkg

个人开发者

GOPATH src

 流行的项目结构

Go 语言中也是通过包来组织代码文件,我们可以引用别人的包也可以发布自己的包,但是为了防止不同包的项目名冲突,我们通常使用顶级域名来作为包名的前缀,这样就不担心项目名冲突的问题了。因为不是所有个人开发者都拥有自己的顶级域名,所以目前流行的方式是使用个人的 Github 用户名来区分不同的包。

企业开发者

 Hello World

src main.go 
package main  // 声明 main 包,表明当前是一个可执行程序

import "fmt"  // 导入内置 fmt 

func main(){  // main函数,是程序执行的入口
    fmt.Println("Hello World!")  // 在终端打印 Hello World!
}
go build。Go GOPATH srchello windowshello.exe hello.exe 
D:\ZHY\Go\src\hello>hello.exe
Hello World!

我们还可以使用 -o 参数来指定编译后可执行文件的名字。

go build -o testhello.exe