[Go語言]一、入門Hello,World

來源:互聯網
上載者:User

標籤:style   blog   http   java   color   檔案   

Go簡介

 

為什麼有了系統編程層級的C/C++以及後來的Java,也有指令碼層級的Ruby/Perl/Python語言可用,Google為什麼還要發布Go語言?

“我們開發Go,是因為近10年左右開發程式之難讓我們有點沮喪”
                                             --首席軟體工程師Rob Pike

 

Go完全支援coroutine,即協程,也稱為輕量級的線程。多數語言在文法層面不直接支援協程。一些語言或許可以通過第三方庫來支援協程,但是功能並不完整。比如僅僅提供協程的建立,

銷毀和切換能力。如果在這樣的協程中調用一個同步IO,如網路通訊/本地檔案讀寫,都會阻塞其他並發的協程。從而無法真正的完成協程本身期望的目標。

        Go在語言層面就支援協程,叫goroutine。Go語言提供的所有系統調用syscall,包括所有同步IO,都會讓出CPU給其他goroutine。

運行方式是

func run (args string) {    //...}func main() {    go run(“go”)}

 

只需要一個go關鍵字,就可以實現並發的協程運算,是不是很酷。

Go強調風格的強制統一。public的變數必須大寫字母開始,private則以小寫字母開始,這樣就不用顯示寫出public和private修飾符了。

同時Go對代碼塊的起始“{”則有強制性要求。如

if expression {    // 要求如此}if expression{    //編譯錯誤}

這裡可以明顯看出強制性,在C++/JAVA中,兩種風格都允許,明顯會帶來一些風格的不統一。

Go首創的錯誤處理也很酷,如下看關鍵字defer的用法

f,err = os.open(filename)if err != nil {    log.Println("open failed")    return}defer f.Close()

這裡的defer保證在函數退出時候,不管什麼原因引起的異常,都會使得f的資源得到釋放。

同時Go還支援多個傳回值,雖然動態語言Python也支援。

一個defer就徹底讓你放棄java中那些嵌套的try…catch…finally。

Go中不支援運算子和操作符的重載,C++/JAVA中提供的重載雖然解決了OOP部分問題,但是帶來複雜性。

Go中放棄了建構函式和解構函式,沒有虛函數,也沒有了vptr,因此原來OOP中對象的開銷都降到最小。GO在Google看來,是實戰派作風,而不是學院派。

Go接受函數式編程思想,支援goroutine和通道,支援匿名函數和閉包,可以說,在系統級語言方面,Go是最有開放性的一門語言。

Go編程環境搭建

這裡首先直接下載安裝包:

http://gopher.qiniudn.com/download/go/go1.3.windows-amd64.zip

解壓出其中的go頂級目錄,拷貝到C下:C:\go。

配置環境變數到path後,就可以在命令列中看到go版本資訊了。

Go的編輯器選擇有很多種,這裡選擇sublime。鍵入Hello,world,運行程式,結束Go學習的入門第一課。

 

參考書《Go語言編程》:http://www.amazon.cn/s/ref=nb_sb_ss_i_0_6?__mk_zh_CN=%E4%BA%9A%E9%A9%AC%E9%80%8A%E7%BD%91%E7%AB%99&url=search-alias%3Daps&field-keywords=go%E8%AF%AD%E8%A8%80%E7%BC%96%E7%A8%8B&sprefix=Go%E8%AF%AD%E8%A8%80%E7%BC%96%E7%A8%8B%2Caps%2C173&rh=i%3Aaps%2Ck%3Ago%E8%AF%AD%E8%A8%80%E7%BC%96%E7%A8%8B

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.