go[計算機程式語言]

go[計算機程式語言]

Go是一種新的語言,一種並發的、帶垃圾回收的、快速編譯的語言。它具有以下特點: 它可以在一台計算機上用幾秒鐘的時間編譯一個大型的Go程式。Go為軟體構造提供了一種模型,它使依賴分析更加容易,且避免了大部分C風格include檔案與庫的開頭。Go是靜態類型的語言,它的類型系統沒有層級。因此用戶不需要在定義類型之間的關係上花費時間,這樣感覺起來比典型的面向對象語言更輕量級。Go完全是垃圾回收型的語言,並為並發執行與通信提供了基本的支持。按照其設計,Go打算為多核機器上系統軟體的構造提供一種方法。 Go是一種編譯型語言,它結合了解釋型語言的遊刃有餘,動態類型語言的開發效率,以及靜態類型的安全性。它也打算成為現代的,支持網路與多核計算的語言。要滿足這些目標,需要解決一些語言上的問題:一個富有表達能力但輕量級的類型系統,並發與垃圾回收機制,嚴格的依賴規範等等。這些無法通過庫或工具解決好,因此Go也就應運而生了。

基本信息

簡介

Go 是一個開源的程式語言,它能讓構造簡單、可靠且高效的軟體變得容易。

發展歷史

Go語言於2009年11月正式宣布推出,成為開放原始碼項目,並在Linux及Mac OS X平台上進行了實現,後追加Windows系統下的實現。

谷歌資深軟體工程師羅布·派克(Rob Pike)表示,“Go讓我體驗到了從未有過的開發效率。”派克表示,和今天的C++或C一樣,Go是一種系統語言。他解釋道,“使用它可以進行快速開發,同時它還是一個真正的編譯語言,我們之所以現在將其開源,原因是我們認為它已經非常有用和強大。”

2007年,谷歌把Go作為一個20%項目開始研發,即讓員工抽出本職工作之外時間的20%,投入在該項目上。除了派克外,該項目的成員還有其它一些谷歌工程師。

派克表示,編譯後Go代碼的運行速度與C語言非常接近,而且編譯速度非常快,就像在使用一個互動式語言。

現有程式語言均未專門對多核處理器進行最佳化。派克表示,Go就是谷歌工程師為這類程式編寫的一種語言。它不是針對編程初學者設計的,但學習使用它也不是非常困難。Go支持面向對象,而且具有真正的閉包(closures)和反射(reflection)等功能。

在學習曲線方面,派克認為Go與Java類似,對於Java開發者來說,應該能夠輕鬆學會Go。

之所以將Go作為一個開源項目發布,目的是讓開源社區有機會創建更好的工具來使用該語言,例如Eclipse IDE中的外掛程式。目前還沒有支持Go的IDE。

在目前谷歌公開發布的所有網路套用中,均沒有使用Go。但是谷歌已經使用該語言開發了幾個內部項目。

派克表示,Go是否會對谷歌即將推出的Chrome OS產生影響,現在還言之尚早,不過Go的確可以和Native Client配合使用。他表示,“Go可以讓套用完美的運行在瀏覽器內。”例如,使用Go可以更高效的實現Wave,無論是在前端還是後台。

特點

Go語言是一種新的語言,一種並發的、帶垃圾回收的、快速編譯的語言。它具有以下特點:

1.它可以在一台計算機上用幾秒鐘的時間編譯一個大型的Go程式。

2.Go語言為軟體構造提供了一種模型,它使依賴分析更加容易,且避免了大部分C風格include檔案與庫的開頭。

3.Go語言是靜態類型的語言,它的類型系統沒有層級。因此用戶不需要在定義類型之間的關係上花費時間,這樣感覺起來比典型的面向對象語言更輕量級。

4.Go語言完全是垃圾回收型的語言,並為並發執行與通信提供了基本的支持。

按照其設計,Go打算為多核機器上系統軟體的構造提供一種方法。

Go語言是一種編譯型語言,它結合了解釋型語言的遊刃有餘,動態類型語言的開發效率,以及靜態類型的安全性。它也打算成為現代的,支持網路與多核計算的語言。要滿足這些目標,需要解決一些語言上的問題:一個富有表達能力但輕量級的類型系統,並發與垃圾回收機制,嚴格的依賴規範等等。這些無法通過庫或工具解決好,因此Go也就應運而生了。

特色

簡潔,快速,安全,並行,有趣,開源,支持泛型編程,記憶體管理,數組安全,編譯迅速

目標

Go的目標是希望提升現有程式語言對程式庫等依賴性(dependency)的管理,這些軟體元素會被應用程式反覆調用。由於存在並行編程模式,因此這一語言也被設計用來解決多處理器的任務。

第一個 Go 程式

接下來我們來編寫第一個 Go 程式 hello.go(Go 語言源檔案的擴展是 .go),代碼如下:

執行以上代碼輸出:

相關詞條

相關搜尋

熱門詞條

聯絡我們