一.Go發展史
想要瞭解一門語言,少不了他的發展史。
這裡簡單的介紹一下其曆史年度關鍵節點。
1.裡程碑
Go 也叫 Golang
- 起源於2007年
- 2009年首次公開發布
- 2010年Google投入使用
- 2011年被Google AppEngine支援
- 2012年正式版Go1
- 2015年發布Go1.5,移除了“最後殘餘的C代碼”
- 目前最新版本為Go1.10
不得不說Go是一門很年輕的語言,是一個零零後。
二.Go特點
我們學習一門語言總歸是出於各種各樣的原因的,他會是各式各樣的原因。
那既然現在我有了一個想要瞭解 Go 的一個意願,肯定要Crowdsourced Security Testing道該語言有那些特色,或者說有那些迷人的地方的說。
1.效率高
— 圖片來自百度
Go 被譽為“21世紀的 C 語言”。
正如 Go 語言的 Logo 這隻萌萌噠短腿兒囊地鼠的寓意一樣,Go 語言是很快速的,他的快速體現在兩個方面:
- 開發效率高
- 運行速度快
關於究竟是選擇開發速度還是執行速度這個問題,Go 選擇了折中,他即要開發速度,又要執行速度。
舉個青澀的栗子:碼的比 C / C++ 快 ,跑得比 Python 快,大致意思是對的,關於更詳細的差異需要深入去瞭解。
2.部署簡單
Go 不允許額外的引用,在其編譯後產生會產生可執行檔,幾乎不需要任何外部依賴
3.並發支援
Go 原生支援並發。
假如我們用 C# (seaconch .net 出身)編寫一個多線程的項目,那麼我們需要考慮東西會很多,編碼起來也會很繁瑣。
然而這些對於 Go 來說會是容易很多。
4.編碼體驗
Go 屬於靜態語言,是編譯型語言,但其構建速度很快,並且有大量的包可以使用。
Go 語言的目標即:將靜態語言的安全性和高效性與動態語言的易開發性進行結合
5.代碼格式化
通過 Go 的格式化命令(gofmt),可以使代碼風格保持統一化,便於閱讀。
6.UTF-8編碼
Go 完全支援 UTF-8 ,Go 的源碼格式即 UTF-8。
7.GC
Go 已經擁有了記憶體回收機制
三.Go缺失
seaconch 已知列舉如下:
- 不支援函數(方法)重載
- 不支援隱式轉換
- 不支援泛型
- 不支援靜態變數
四.適用情境
根據 seaconch 查閱得出相對較多的情境為: