1 簡介

#從韓順平的B站引入

GO能做什么

1

如上圖,可以分為區(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)存泄漏問題

2

如上圖,展示了各版本的演進

GO語言的特點

3

我們知道c效率高,python開發(fā)快,go就是兼顧兩者,

1 go從c繼承了很多理念,而且有弱化的指針,如下圖就是函數(shù)里給指針傳入,并賦值

4

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,哈哈

5

7 新增:支持切片slice,延時執(zhí)行defer等等后續(xù)會講

GO開發(fā)工具

6

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

7

如上,當(dāng)然還要eclipse,jetbrains系列,這些要安裝go插件,LiteIDE是國人開發(fā)的專門使用go的ide

新手學(xué)習(xí)編程,要先學(xué)會使用文本編輯工具,如vscode,vim,notepad++等,后續(xù)再使用高級IDE,防止習(xí)慣IDE,脫機不會寫代碼

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容