Go語言保證了既能到達靜态編譯語言的安全和性能,又達到了動态語言開發維護的高效率 ,使用一個表達式來形容Go語言:Go = C + Python , 說明Go語言既有C靜态語言程 序的運作速度,又能達到Python 動态語言的快速開發。
1、從C語言中繼承了很多理念,包括表達式文法,控制結構,基礎資料類型,調用參數傳值,指針等等,也保留了和C語言一樣的編譯執行方式及弱化的指針
//go 語言的指針的使用特點
func testPtr(num *int) {
*num = 20
}
2、引入包的概念,用于組織程式結構,Go語言的一個檔案都要歸屬于一個包,而不能單獨存在。
3、垃圾回收機制,記憶體自動回收,不需開發人員管理
4、天然并發 (重要特點)
從語言層面支援并發,實作簡單
goroutine,輕量級線程,可實作大并發處理,高效利用多核。
基于CPS并發模型(Communicating Sequential Processes )實作
5、吸收了管道通信機制,形成 Go 語言特有的管道 channel 通過管道 channel , 可以實作不同的 goroute 之間的互相通信。
6、函數可以傳回多個值。
//寫一個函數,實作同時傳回 和,差
//go 函數支援傳回多個值
func getSumAndSub(n1 int, n2 int) (int, int ) {
sum := n1 + n2 //go 語句後面不要帶分号
sub := n1 - n2
return sum , sub
7、新的創新:比如切片 slice、延時執行defer