#从韩顺平的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继承了很多理念,而且有弱化的指针,如下图就是函数里给指针传入,并赋值
42 我们知道很多语言都有包的概念用于组织程序结构,go强化了要求,要每个文件都必须指定所属的包,不能独立存在,如上图
3我们知道c,c++要自己写垃圾回收,而go不用,不用内存泄漏的问题,方便我们开发
4天然高并发,充分利用多核,goroutine轻量级线程,轻松实现上万并发
5 go语言特有的管道channel,实现goroutine间通信,后续会详解
6 支持返回多个值,如下,感觉有点抄袭python,哈哈
57 新增:支持切片slice,延时执行defer等等后续会讲
GO开发工具
6GO开发工具有很多,我们建议使用自己熟悉的,免费的,如上图,有vscode,支持linux,windows,mac os等, 比如sublime保存一定次数会提示购买,取消其实和付费版一样。vim(vi),emacs等常用语linux端开发
7如上,当然还要eclipse,jetbrains系列,这些要安装go插件,LiteIDE是国人开发的专门使用go的ide
新手学习编程,要先学会使用文本编辑工具,如vscode,vim,notepad++等,后续再使用高级IDE,防止习惯IDE,脱机不会写代码
网友评论