Can you summarize the following document?
        
  Go的語法接近C語言,但對於變數的宣告有所不同。Go支援垃圾回收功能。Go的平行計算模型是以東尼·霍爾的交談循序程式(CSP)為基礎,採取類似模型的其他語言包括Occam和Limbo,Go也具有這個模型的特徵,比如通道傳輸。通過goroutine和通道等並行構造可以建造執行緒池和管道等。在1.8版本中開放外掛(Plugin)的支援,這意味著現在能從Go中動態載入部分函式。  與C++相比,Go並不包括如列舉、異常處理、繼承、泛型、斷言、虛擬函式等功能,但增加了 切片(Slice) 型、併發、管道、垃圾回收功能、介面等特性的語言級支援。Go 2.0版本將支援泛型,對於斷言的存在,則持負面態度,同時也為自己不提供型別繼承來辯護。  不同於Java,Go原生提供了關聯陣列(也稱為雜湊表(Hashes)或字典(Dictionaries)),就像字串型別一樣。

  2007年,Google設計Go,目的在於提高在多核、網路機器(networked machines)、大型程式碼庫(codebases)的情況下的開發效率。當時在Google,設計師們想要解決其他語言使用中的缺點,但是仍保留他們的優點。  設計師們主要受他們之間流傳的“不要像C++”啟發。  Go於2009年11月正式宣佈推出,版本1.0在2012年3月釋出。之後,Go廣泛應用於Google的產品以及許多其他組織和開源專案。  在2016年11月,Go(一種無襯線體)和Go Mono 字型(一種等寬字型)分別由設計師 Charles Bigelow 和 Kris Holmes 釋出。 兩種字型均採用了 WGL4,並且依照著 DIN 1450 標準,可清晰地使用了 large x-height 和 letterforms 。  在2018年8月,原生的圖示更換了 。 然而,Gopher mascot 仍舊命相同的名字。  在2018年8月,Go的主要貢獻者釋出了兩個關於語言新功能的“草稿設計——泛型 和 異常處理,同時尋求Go使用者的反饋。Go 由於在1.x時,缺少對 泛型程式設計 的支援和冗長的 異常處理 而備受批評。

  

  下面是用Go寫成的Hello World程式: package main  import "fmt"  func main() {

  透過Go僅需幾行程式碼就完成HTTP網頁伺服器的實現: package main  import (  func hello(w http.ResponseWriter, r *http.Request) {  func main() {

  下面的例子說明了怎樣用Go去實現一個像Unix中的Echo命令程式: package main  import (  var omitNewline = flag.Bool("n", false, "don't print final newline")  const (  func main() {

  

  Go有定義如下的撰寫風格 除了第二點外(換行會產生編譯錯誤),在不符合上述規定時,仍舊可以編譯,但使用了內建gofmt工具後,會自動整理程式碼,使之符合規定的撰寫風格。

  Go的工作區位於codice_1,其目錄結構如下:  三個目錄的用途分別為 舉例來說,整個專案目錄可能會如下:

  Go的主要特色在於易於使用的並行設計,叫做Goroutine,透過Goroutine能夠讓程式以非同步的方式執行,而不需要擔心一個函式導致程式中斷,因此Go也非常地適合網路服務。假設有個程式,裡面有兩個函式: func main() {  這個時候透過Go讓其中一個函式同步執行,如此就不需要等待該函式執行完後才能執行下一個函式。 func main() {  Goroutine是類似執行緒的概念,屬於纖程(區別於協程和執行緒)。執行緒屬於系統層面,通常來說建立一個新的執行緒會消耗較多的資源且管理不易;而協程的主要作用是提供在一個執行緒內的併發性,卻不能利用多個處理器執行緒。而 Goroutine就像輕量級的執行緒,一個Go程式可以執行超過數萬個 Goroutine,並且這些效能都是原生級的,隨時都能夠關閉、結束,且執行在多個處理器執行緒上。一個核心裡面可以有多個Goroutine,透過GOMAXPROCS引數你能夠限制Gorotuine可以佔用幾個系統執行緒來避免失控。  在內建的官方套件中也不時能夠看見Goroutine的應用,像是net/http中用來監聽網路服務的函式實際上是建立一個不斷執行迴圈的Goroutine;同時搭配了epoll 等IO多路複用機制維護Goroutine的事件迴圈。

  當前有兩個Go編譯器分支,分別為官方編譯器gc和gccgo。官方編譯器在初期使用C寫成,後用Go重寫從而實現自舉。Gccgo是一個使用標準GCC作為後端的Go編譯器。  官方編譯器支援跨平臺編譯(但不支援CGO),允許將原始碼編譯為可在目標系統、架構上執行的二進位制檔案。
英語:Go(又稱英語:Golang)是Google開發的一種靜態強型別、編譯型、併發型,並具有垃圾回收功能的程式語言。