Go 語言保證了既能到達(dá)靜態(tài)編譯語言的安全和性能,又達(dá)到了動態(tài)語言開發(fā)維護(hù)的高效率 ,使用一個表達(dá)式來形容 Go 語言:Go = C + Python , 說明 Go 語言既有 C 靜態(tài)語言程序的運行速度,又能達(dá)到 Python 動態(tài)語言的快速開發(fā)。
- 從 C 語言中繼承了很多理念,包括表達(dá)式語法,控制結(jié)構(gòu),基礎(chǔ)數(shù)據(jù)類型,調(diào)用參數(shù)傳值,指針等 等,也保留了和 C 語言一樣的編譯執(zhí)行方式及弱化的指針。
- 引入
包的概念,用于組織程序結(jié)構(gòu),Go語言的一個文件都要歸屬于一個包,而不能單獨存在。 - 垃圾回收機制,內(nèi)存自動回收,不需開發(fā)人員管理。
- 天然并發(fā) (重要特點)。
a. 從語言層面支持并發(fā),實現(xiàn)簡單。
b. goroutine,輕量級線程,可實現(xiàn)大并發(fā)處理,高效利用多核。
c. 基于 CPS 并發(fā)模型(Communicating Sequential Processes )實現(xiàn)。 - 吸收了管道通信機制,形成 Go 語言特有的管道 channel 通過管道 channel , 可以實現(xiàn)不同的 goroute 之間的相互通信。
- 函數(shù)可以
返回多個值。 - 新的創(chuàng)新:比如切片 slice、延時執(zhí)行 defer。