#從韓順平的B站引入
GO能做什么

如上圖,可以分為區(qū)塊鏈,后端,分布式文件系統(tǒng)等應(yīng)用
對于區(qū)塊鏈,核心要求分布式數(shù)據(jù)庫賬目,公開透明
對于服務(wù)端開發(fā),要求排序、搜索、推薦的效率,提供負載均衡等等,對效率有較高的要求(要有處理高并發(fā)的能力)
對于分布式,云計算,要求調(diào)度,也反映golang計算能力強
go語言是google公司開發(fā)的語言,也是其主推的語言,國內(nèi)很多BAT已經(jīng)開始使用go開發(fā)
GO語言歷史
開發(fā)者主要是肯.湯姆遜和羅布.派克。前者一定非常熟悉了,開發(fā)了B,C,unix的人,后者也是bell實驗室得人,開發(fā)了java的hotspot編譯器和chrome的js引擎V8
google開發(fā)go的原因,硬件發(fā)展快,軟件當(dāng)時沒有利用好多核多CPU優(yōu)勢,很多語言速度慢,而C++雖然速度快,但是開發(fā)慢,編譯時間長,有內(nèi)存泄漏問題

如上圖,展示了各版本的演進
GO語言的特點

我們知道c效率高,python開發(fā)快,go就是兼顧兩者,
1 go從c繼承了很多理念,而且有弱化的指針,如下圖就是函數(shù)里給指針傳入,并賦值

2 我們知道很多語言都有包的概念用于組織程序結(jié)構(gòu),go強化了要求,要每個文件都必須指定所屬的包,不能獨立存在,如上圖
3我們知道c,c++要自己寫垃圾回收,而go不用,不用內(nèi)存泄漏的問題,方便我們開發(fā)
4天然高并發(fā),充分利用多核,goroutine輕量級線程,輕松實現(xiàn)上萬并發(fā)
5 go語言特有的管道channel,實現(xiàn)goroutine間通信,后續(xù)會詳解
6 支持返回多個值,如下,感覺有點抄襲python,哈哈

7 新增:支持切片slice,延時執(zhí)行defer等等后續(xù)會講
GO開發(fā)工具

GO開發(fā)工具有很多,我們建議使用自己熟悉的,免費的,如上圖,有vscode,支持linux,windows,mac os等, 比如sublime保存一定次數(shù)會提示購買,取消其實和付費版一樣。vim(vi),emacs等常用語linux端開發(fā)

如上,當(dāng)然還要eclipse,jetbrains系列,這些要安裝go插件,LiteIDE是國人開發(fā)的專門使用go的ide
新手學(xué)習(xí)編程,要先學(xué)會使用文本編輯工具,如vscode,vim,notepad++等,后續(xù)再使用高級IDE,防止習(xí)慣IDE,脫機不會寫代碼