1 简介

#从韩顺平的B站引入

GO能做什么

1

如上图,可以分为区块链,后端,分布式文件系统等应用

对于区块链,核心要求分布式数据库账目,公开透明

对于服务端开发,要求排序、搜索、推荐的效率,提供负载均衡等等,对效率有较高的要求(要有处理高并发的能力)

对于分布式,云计算,要求调度,也反映golang计算能力强

go语言是google公司开发的语言,也是其主推的语言,国内很多BAT已经开始使用go开发

GO语言历史

开发者主要是肯.汤姆逊和罗布.派克。前者一定非常熟悉了,开发了B,C,unix的人,后者也是bell实验室得人,开发了java的hotspot编译器和chrome的js引擎V8

google开发go的原因,硬件发展快,软件当时没有利用好多核多CPU优势,很多语言速度慢,而C++虽然速度快,但是开发慢,编译时间长,有内存泄漏问题

2

如上图,展示了各版本的演进

GO语言的特点

3

我们知道c效率高,python开发快,go就是兼顾两者,

1 go从c继承了很多理念,而且有弱化的指针,如下图就是函数里给指针传入,并赋值

4

2 我们知道很多语言都有包的概念用于组织程序结构,go强化了要求,要每个文件都必须指定所属的包,不能独立存在,如上图

3我们知道c,c++要自己写垃圾回收,而go不用,不用内存泄漏的问题,方便我们开发

4天然高并发,充分利用多核,goroutine轻量级线程,轻松实现上万并发

5 go语言特有的管道channel,实现goroutine间通信,后续会详解

6 支持返回多个值,如下,感觉有点抄袭python,哈哈

5

7 新增:支持切片slice,延时执行defer等等后续会讲

GO开发工具

6

GO开发工具有很多,我们建议使用自己熟悉的,免费的,如上图,有vscode,支持linux,windows,mac os等, 比如sublime保存一定次数会提示购买,取消其实和付费版一样。vim(vi),emacs等常用语linux端开发

7

如上,当然还要eclipse,jetbrains系列,这些要安装go插件,LiteIDE是国人开发的专门使用go的ide

新手学习编程,要先学会使用文本编辑工具,如vscode,vim,notepad++等,后续再使用高级IDE,防止习惯IDE,脱机不会写代码

你可能感兴趣的:(1 简介)