The Go of the programming language of 2019(go語言學習筆記)

go (計算機編程語言)

Go(又稱Golang)是Google開發的一種靜態強類型、編譯型、併發型,並具有垃圾回收功能的編程語言。

簡介

go(又稱Golang)是Google開發的一種靜態強類型、編譯型、併發型,並具有垃圾回收功能的編程語言。
羅伯特·格瑞史莫,羅勃·派克(Rob Pike)及肯·湯普遜於2007年9月開始設計Go,,稍後Ian Lance Taylor、Russ Cox加入項目。Go是基於Inferno操作系統所開發的。Go於2009年11月正式宣佈推出,成爲開放源代碼項目,並在Linux及Mac OS X平臺上進行了實現,後來追加了Windows系統下的實現。在2016年,Go被軟件評價公司TIOBE 選爲“TIOBE 2016 年最佳語言”。 目前,Go每半年發佈一個二級版本(即從a.x升級到a.y)

描述

Go的語法接近C語言,但對於變量的聲明有所不同。Go支持垃圾回收功能。Go的並行模型是以東尼·霍爾的通信順序進程(CSP)爲基礎,採取類似模型的其他語言包括Occam和Limbo,,但它也具有Pi運算的特徵,比如通道傳輸。在1.8版本中開放插件(Plugin)的支持,這意味着現在能從Go中動態加載部分函數。

與C++相比,Go並不包括如枚舉、異常處理、繼承、泛型、斷言、虛函數等功能,但增加了 切片(Slice) 型、併發、管道、垃圾回收、接口(Interface)等特性的語言級支持。Go 2.0版本將支持泛型,對於斷言的存在,則持負面態度,同時也爲自己不提供類型繼承來辯護。

不同於Java,Go內嵌了關聯數組(也稱爲哈希表(Hashes)或字典(Dictionaries)),就像字符串類型一樣。 [1]

撰寫風格

在Go中有幾項規定,而且這些是強制的,當不匹配以下規定時編譯將會產生錯誤。

  • 1.每行程序結束後不需要撰寫分號(;)。
  • 2.大括號({)不能夠換行放置。
  • 3.if判斷式和for循環不需要以小括號包覆起來。

Go亦有內置gofmt工具,能夠自動整理代碼多餘的空白、變量名稱對齊、並將對齊空格轉換成Tab。 [1]

編譯器

當前有兩個Go編譯器分支,分別爲官方編譯器gc和gccgo。官方編譯器在初期使用C寫成,後用Go重寫從而實現自舉。Gccgo是一個使用標準GCC作爲後端的Go編譯器

官方編譯器支持跨平臺編譯(但不支持CGO),允許將源代碼編譯爲可在目標系統、架構上執行的二進制文件。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章