1. Golang的学习方向
- 区块链研发工程师
- Go服务器端 / 游戏软件工程师
- Golang分布式 / 云计算软件工程师
2.如何快速掌握技术
image.png3. Google 创造 Golang 的原因
-
计算机硬件技术更新频繁, 性能提高很快. 目前主流的编程语言发展明显落后于硬件,不能合理利用<font color='red'>多核多CPU</font>的优势提升软件系统性能.
-
软件系统复杂度越来越高, 维护成本越来越高, 目前<font color='red'>缺乏一个足够简洁高效的编程语言</font>.
现有的编程语言缺陷:
- 1.风格不统一
- 2.计算能力不够
- 3.处理大并发不够好
-
企业运行维护很多C/C++的项目, C/C++程序运行速度虽然很快, 但是编译速度很慢, 同时还存在内存泄漏的一系列的困扰需要解决
4.Golang 的语言的特点
Go 语言保证了既能到达静态编译语言的安全和性能,又达到了动态语言开发维护的高效率,使用一个表达式来形容 Go 语言:
说明 Go 语言既有 C 静态语言程序的运行速度,又能达到 Python 动态语言的快速开发。
- 从 C 语言中继承了很多理念,包括表达式语法,控制结构,基础数据类型,调用参数传值,指针等等,也保留了和 C 语言一样的编译执行方式及弱化的指针
举一个案例(体验):
//go 语言的指针的使用特点(体验)
func testPtr(num *int) {
*num = 20
}
- 引入<font color='red'>包的概念</font>,用于组织程序结构, <font color='red'>Go 语言的一个文件都要归属于一个包</font>,而不能单独存在。
//一个go文件需要在一个包下
package main
import "fmt"
func sayOk() {
//输出一句话
fmt.Println("Ok")
}
-
垃圾回收机制, 内存自动回收, 不需要开发者管理
-
<font color='red'>*天然并发</font>
- (1) 从语言层面支持并发,实现简单
- (2) goroutine,轻量级线程,可实现大并发处理,高效利用多核。
- (3) 基于 CPS 并发模型(Communicating Sequential Processes )实现
-
吸收了管道通信机制,形成 Go 语言特有的管道 channel 通过管道 channel , 可以实现不同的 goroute之间的相互通信。
-
函数可以返回多个值。
//写一个函数,实现同时返回 和,差
//go 函数支持返回多个值
func getSumAndSub(n1 int, n2 int) (int, int ) {
sum := n1 + n2 //go 语句后面不要带分号.
sub := n1 - n2
return sum , sub
}
- 新的创新:比如切片 slice、延时执行 defer
网友评论