Go 语言学习总结—— Go 入门简介
Posted 科技D人生
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go 语言学习总结—— Go 入门简介相关的知识,希望对你有一定的参考价值。
一、为何而生
go语言(或 Golang)是 Google 开发的开源编程语言,诞生于2006 年 1 月 2 日下午15 点 4 分 5 秒,于 2009 年 11 月开源,2012 年发布 go 稳定版。Go 语言在多核并发上拥有原生的设计优势,Go 语言从底层原生支持并发,无须第三方库、开发者的编程技巧和开发经验。Go 是非常年轻的一门语言,它的主要目标是“兼具 Python 等动态语言的开发速度和 C/C++ 等编译型语言的性能与安全性”。很多公司,特别是中国的互联网公司,即将或者已经完成了使用 Go 语言改造旧系统的过程。经过 Go 语言重构的系统能使用更少的硬件资源获得更高的并发和 I/O 吞吐表现。充分挖掘硬件设备的潜力也满足当前精细化运营的市场大环境。Go 语言的并发是基于 goroutine
的,goroutine
类似于线程,但并非线程。可以将 goroutine
理解为一种虚拟线程。Go 语言运行时会参与调度 goroutine
,并将 goroutine
合理地分配到每个 CPU 中,最大限度地使用CPU性能。开启一个 goroutine 的消耗非常小(大约 2KB 的内存),你可以轻松创建数百万个goroutine
。goroutine
的特点如下:
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 语言的公司
Google:https://github.com/kubernetes/kubernetes
Facebook:https://github.com/facebookgo
腾讯
百度
360 开源日志系统:https://github.com/Qihoo360/poseidon
四、Go 语言适合做什么
- 服务端开发
- 分布式系统,微服务
- 网络编程
- 区块链开发
- 内存 KV 数据库,例如 boltDB、levelDB
- 云平台
五、Go 语言的前景
目前 Go 语言已经⼴泛应用于人工智能、云计算开发、容器虚拟化、⼤数据开发、数据分析及科学计算、运维开发、爬虫开发、游戏开发等领域。Go 语言简单易学,天生支持并发,完美契合当下高并发的互联网生态。Go 语言的岗位需求持续高涨,目前的 Go 程序员数量少,待遇好。抓住趋势,要学会做一个领跑者而不是跟随者。国内 Go 语言的需求潜力巨大,目前无论是国内大厂还是新兴互联网公司基本上都会有 Go 语言的岗位需求。
六、Go 开发入门
开发环境安装
Go官网(https://golang.org/dl/ ) 下载安装包。以下以 Windows 环境为例:
Windows 安装
验证安装
配置环境变量
GOPATH
是一个环境变量,用来表明你写的go
项目的存放路径。GOPATH
路径最好只设置一个,所有的项目代码都放到GOPATH
的src
目录下。将你的安装目录(D:\\Program Files\\Go\\)添加到环境变量:
检查电脑里面是否存在 GOPATH
并且设置值为你要存 Go
代码的目录。同时在 path
里面添加 Go
的安装目录和 GOPATH
目录
在 GOPATH 目录下新建 3 个文件夹
Go 项目目录
在进行 Go
语言开发的时候,我们的代码总是会保存在 $GOPATH/src
目录下。在工程经过 go build
、go install
或 go get
等指令后,会将下载的第三方包源代码文件放在 $GOPATH/src
目录下, 产生的二进制可执行文件放在 $GOPATH/bin
目录下,生成的中间缓存文件会被保存在 $GOPATH/pkg
下。如果我们使用 Git
来管理我们的项目代码时,我们只需要添加 $GOPATH/src
目录的源代码即可。bin
和 pkg
目录的内容无需版本控制。
个人开发者
我们知道源代码都是存放在 GOPATH
的src
目录下,那我们可以按照下图来组织我们的代码。
流行的项目结构
Go 语言中也是通过包来组织代码文件,我们可以引用别人的包也可以发布自己的包,但是为了防止不同包的项目名冲突,我们通常使用顶级域名来作为包名的前缀,这样就不担心项目名冲突的问题了。因为不是所有个人开发者都拥有自己的顶级域名,所以目前流行的方式是使用个人的 Github 用户名来区分不同的包。
企业开发者
Hello World
学习语言的第一个程序肯定是 hello word 了,进入前面创建的三个目录里面的 src 目录。在 src
目录下创建一个 hello 目录,在 hello 目录中创建一个 main.go
文件:
package main // 声明 main 包,表明当前是一个可执行程序
import "fmt" // 导入内置 fmt
func main() // main函数,是程序执行的入口
fmt.Println("Hello World!") // 在终端打印 Hello World!
在 hello 目录下执行:go build。Go
编译器会去 GOPATH
的 src
目录下查找你要编译的 hello
项目,编译得到的可执行文件会保存在执行编译命令的当前目录下,如果是 windows
平台会在当前目录下找到 hello.exe
可执行文件。在终端直接执行该 hello.exe
文件:
D:\\ZHY\\Go\\src\\hello>hello.exe
Hello World!
我们还可以使用 -o 参数来指定编译后可执行文件的名字。
go build -o testhello.exe
以上是关于Go 语言学习总结—— Go 入门简介的主要内容,如果未能解决你的问题,请参考以下文章