天天看點

go語言的特點

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