贺胖娇的编程之旅......

(1)go基础学习-基础概念

2021.08.27

参考文档:
go文档
Go 语言教程
可以先看go语言学习路线图, 对大概学习路线有个了解。

基础概念

go语言特色

Go语言在多核并发上拥有原生的设计优势, Go语言从底层原生支持并发,无须第三方库、开发者的编程技巧和开发经验。

经过 Go 语言重构的系统能使用更少的硬件资源获得更高的并发和I/O吞吐表现。 充分挖掘硬件设备的潜力也满足当前精细化运营的市场大环境。

Go语言的并发是基于 goroutine 的,goroutine 类似于线程,但并非线程。 可以将 goroutine 理解为一种虚拟线程。 Go 语言运行时会参与调度 goroutine,并将 goroutine 合理地分配到每个 CPU 中,最大限度地使用CPU性能。 开启一个goroutine的消耗非常小(大约2KB的内存),你可以轻松创建数百万个goroutine。

goroutine的特点:

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

go语言的主要特征

1.自动立即回收。
2.更丰富的内置类型。
3.函数多返回值。
4.错误处理。
5.匿名函数和闭包。
6.类型和接口。
7.并发编程。
8.反射。
9.语言交互性。

总结

Go语言天然支持并发,学习曲线平滑,代码风格统一

go应用场景

go适合做什么

服务端开发
分布式系统,微服务
网络编程
区块链开发
内存KV数据库,例如boltDB、levelDB
云平台

go语言用途

Go 语言被设计成一门应用于搭载 Web 服务器,存储集群或类似用途的巨型中央服务器的系统编程语言。
对于高性能分布式系统领域而言,Go 语言无疑比大多数其它语言有着更高的开发效率。
它提供了海量并行的支持,这对于游戏服务端的开发而言是再好不过了。

安装

安装略

go项目目录

在进行Go语言开发的时候,我们的代码总是会保存在$GOPATH/src目录下。 在工程经过go build、go install或go get等指令后, 会将下载的第三方包源代码文件放在$GOPATH/src目录下, 产生的二进制可执行文件放在 $GOPATH/bin目录下, 生成的中间缓存文件会被保存在 $GOPATH/pkg 下。

如果我们使用版本管理工具(Version Control System,VCS。常用如Git)来管理我们的项目代码时, 我们只需要添加$GOPATH/src目录的源代码即可。 bin 和 pkg 目录的内容无需版本控制。 具体的各目录作用可参考下图(来源go文档

提问或demo实现

(1)使用go实现归并排序
(2)使用go实现折半查找
(3)Golang 单引号、双引号和反引号的区别

发表评论