1 简介

作者: ca8519be679b | 来源:发表于2021-03-21 21:07 被阅读0次

    #从韩顺平的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 简介

          本文链接:https://www.haomeiwen.com/subject/lzdncltx.html