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 的内存),你可以轻松创建数百万个goroutinegoroutine 的特点如下:

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 语言的公司

Googlehttps://github.com/kubernetes/kubernetes

Facebookhttps://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 路径最好只设置一个,所有的项目代码都放到GOPATHsrc目录下。将你的安装目录(D:\\Program Files\\Go\\)添加到环境变量:

 检查电脑里面是否存在 GOPATH 并且设置值为你要存 Go 代码的目录。同时在 path 里面添加 Go 的安装目录和 GOPATH 目录

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

 Go 项目目录

在进行 Go 语言开发的时候,我们的代码总是会保存在 $GOPATH/src 目录下。在工程经过 go buildgo 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 入门简介的主要内容,如果未能解决你的问题,请参考以下文章

入门Go语言面向对象

Go语言入门

1. Go 语言简介

Go入门笔记

Go语言入门经典|文末赠书

Go语言入门——数组切片和映射