1. Go 的工作方向
- 区块链开发工程师
- Go服务端应用开发、游戏软件开发工程师
- 分布式、云计算开发
2. 如何快速学习 Go 语言
- 先了解整体架构,然后掌握其中的细节
- 适当的囫囵吞枣,学习别人是怎么运用、怎么做,而不是我认为应该怎么做
- 先了解基本原来、基本语法,然后学习快速入门案例
3. Google 创造 Go 语言的原因
-
计算机的硬件水平不断提升,性能更加强大。然而目前的主流编程语言发展明显落后于硬件更新速度,不能够合理利用多核CPU的优势来提升软性系统性能
-
软件系统的复杂度越来越高,维护成本也随之增加,目前缺乏一个足够简洁高效的编程语言,主要体现在
- 编程语言风格不统一
- 计算能力不够强大
- 大并发处理不够高
-
企业运行维护很多
C / C++
的项目,C / C++
应用程序运行速度虽快,但是编译速度慢,同时还存在内存泄漏等问题
4.Go 语言的特点
Go 语言既拥有静态编译语言的安全和性能,又有动态语言开发维护的高效性。可以说 Go 语言既有 C 静态语言程序的运行速度,又能达到 Python 动态语言的快速开发。
- Go 语言从 C 语言中继承了很多理念,包括表达式、控制结构、基础数据类型、调用参数传值 和 指针等等,也保留了 C 语言一样的编译执行方式。
- 引入包的概念,用于组织程序结构,Go 语言的每一个文件都要归属于一个包,文件不能单独存在。
package main // go 文件所在的包
import "fmt"
func test() {
fmt.Println("Hello Go!")
}
- 拥有垃圾回收机制,内存自动回收,不需要开发人员管理内存
- 天然支持高并发
- goroutine 轻量级线程,可实现大并发处理,高效利用多核
- 基于 CPS(Communicating Sequential Processes) 并发模型实现高并发
- 吸收了管道通信机制,形成 Go 语言特有的管道 channel 通过管道 channel ,可以实现不同的 goroute 之间通信
- 函数可以返回多个值
func calc(n1 int,n2 int)(int,int) {
sum := n1 + n2
sub := n1- n2
return sum,sub
}
- 支持切片、延时执行等