go(Go語言)

go(計算機程式語言)

Go語言一般指本詞條

Go(又稱 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 開發的一種靜態強類型編譯型語言。Go 語言語法與 C 相近,但功能上有:記憶體安全,GC(垃圾回收),結構形態及 CSP-style 並發計算

基本介紹

  • 中文名:Golang
  • 外文名:Golang
  • 屬性:程式語言
  • 發布於:2009年
  • 發布組織Google
  • 最新版本:1.14
簡介,描述,撰寫風格,編譯器,

簡介

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

描述

Go的語法接近C語言,但對於變數的聲明有所不同。Go支持垃圾回收功能。Go的並行模型是以東尼·霍爾通信順序進程(CSP)為基礎,採取類似模型的其他語言包括OccamLimbo,但它也具有Pi運算的特徵,比如通道傳輸。在1.8版本中開放外掛程式(Plugin)的支持,這意味著現在能從Go中動態載入部分函式。
與C++相比,Go並不包括如枚舉異常處理繼承泛型斷言虛函式等功能,但增加了 切片(Slice) 型、並發、管道、垃圾回收、接口(Interface)等特性的語言級支持。Go 2.0版本將支持泛型,對於斷言的存在,則持負面態度,同時也為自己不提供類型繼承來辯護。
不同於Java,Go內嵌了關聯數組(也稱為哈希表(Hashes)或字典(Dictionaries)),就像字元串類型一樣。

撰寫風格

在Go中有幾項規定,而且這些是強制的,當不匹配以下規定時編譯將會產生錯誤。
  1. 每行程式結束後不需要撰寫分號(;)。
  2. 大括弧({)不能夠換行放置。
  3. if判斷式和for循環不需要以小括弧包覆起來。
Go亦有內置gofmt工具,能夠自動整理代碼多餘的空白、變數名稱對齊、並將對齊空格轉換成Tab。

編譯器

當前有兩個Go編譯器分支,分別為官方編譯器gc和gccgo。官方編譯器在初期使用C寫成,後用Go重寫從而實現自舉。Gccgo是一個使用標準GCC作為後端的Go編譯器。
官方編譯器支持跨平台編譯(但不支持CGO),允許將原始碼編譯為可在目標系統、架構上執行的二進制檔案。

相關詞條

熱門詞條

聯絡我們