Go 語言環境搭建

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

本文內容

  • 概述
  • Go SDK
  • LiteIDE
  • 參考資料

2009年Google推出了它的第二個開源語言 Go。對 Go 的評價褒貶不一,中國比國外的熱情高中國比國外的熱情高。Go 天生就是為並發和網路而生的,除了這點外,在靜態編譯、GC、跨平台、易學、豐富的標準庫等,其實並不如 C/C++、Java、C#、Python。由此可想而知,為什麼會出現 Go?以及為什麼 Go 存在如此多的問題和爭論?——也許Go 更像是一個“天才的自閉症患者”,如果看清了這點,對網路和知乎上一些 Go 的褒貶也就能泰然啦,這就好像下班到家,是先吃飯,還是先洗澡,重要嗎?~

下載開發工具

下載相關文檔手冊

概述

Go 是Google開發的一種編譯型,並發型,並具有記憶體回收功能的程式設計語言。

羅伯特.格瑞史莫(Robert Griesemer),羅勃.派克(Rob Pike)及肯.湯普遜於2007年9月開始設計Go語言,稍後 Ian Lance Taylor, Russ Cox 加入項目中。Go 語言於2009年11月正式宣布推出,成為開放原始碼項目,並在 Linux 及 Mac OS X 平台上進行了實現,後追加 Windows系統下的實現。

Go 的前身來自於Inferno(基於Plan 9 的改造)。Inferno 包含了一個叫做 Limbo 的語言。這裡引用了一段來自於 Limbo 論文的描述:

Limbo 是用於開發運行在小型電腦上的分布式應用的程式設計語言。它支援模組化編程,編譯期和運行時的強型別檢查,進程內基於具有類型的 channel 通訊,原子性記憶體回收和簡單的抽象資料類型。它被設計用於即便沒有硬體記憶體保護的小型裝置上,也能安全的運行。

Go 從 Limbo 繼承的另一個特性是 channel。從 Limbo 文檔來的另一段描述:

channel 是用於向系統中其他代理髮送和接收特定類型對象的通訊機制。channel 可以用於本地進程間通訊;用於串連到命名的目的地的庫方法。兩種情況都是直接發送和接收操作。

channel 在 Go 中比在 Limbo 中更加好用。如果我們對 Go 的曆史深入探索,會發現一個指向“Newsqueak”的線索,這是在類C 語言中使用channel 進行通訊的先驅。channel 並不是這些語言專屬的,另一個非類C 語言:Erlang,也在使用它。

圖 1 Go 語言編年史

使用 channel 與其他進程進行通訊叫做“通訊序列化過程(Communicating Sequential Processes - CSP)”,由 C. A. R. Hoare 設計構想,而他正是那個發明快速排序演算法的人。

Go 是第一個實現了簡單的(或更加簡單的)並行開發,且跨平台的類C 語言。Go 語言的文法接近 C 語言,但是對於變數的聲明是不同的,其他文法不同之處是 For 迴圈和 if 判斷式沒有括弧圍繞。Go 語言支援記憶體回收功能。Go 語言的並行模型是以東尼.霍爾的 CSP 為基礎,採取類似模型的其他語言套件括 occam 和 Limbo,但它也具有 Pi 運算的特徵,比如通道傳輸。

與 C++相比,Go語言並不包括如異常處理、繼承、泛型、斷言、虛函數等功能,但增加了 slice 型、並發、管道、記憶體回收、介面(interface)等特性的語言級支援。當然,Google 對於泛型的態度還是很開放的,但在該語言的常見問題列表中,對於斷言的存在,則持負面態度,同時也為自己不提供類型繼承來辯護。不同於 Java,Go語言內嵌了關聯陣列(也稱為雜湊表(hashes)或字典(dictionaries)),就像字串類型一樣。

開發 Go 一般需要兩個程式:

  • Go SDK,下載地址;
  • Go IDE——LiteIDE,下載地址。

本文以 Windows 7 64 位元為環境,go1.4.2.windows-amd64 和 liteidex27.2.1.windows-qt5 為例。

Go SDK

圖 2 Go SDK

預設安裝路徑為 C:\go 下。當然你可以更改該路徑,只要在後續配置 IDE 時,使用正確的路徑即可。

安裝完成後,Go SDK 會自動為你添加系統內容變數。

現在,你可以用任何文字編輯器來編寫 Go 代碼,比如 HelloWorld.go,儲存在 C 盤根路徑下:

package main
 
import (
    "fmt"
)
 
func main() {
    fmt.Println("Hello World!")
}

然後,你就可以通過運行 go run HelloWorld.go 來執行這個程式。

C:\>go run HelloWorld.go
hello, world
 
C:\>

LiteIDE

如果不想用命令列,可以用 IDE 環境——LiteIDE,只需對 IDE 進行相應的配置即可。

除了 LiteIDE 外,還有 Sublime Text、Vim、Emacs、Eclipse、IntelliJ IDEA。

下載 LiteIDE 壓縮檔,解壓為 “liteide”後,雙擊 “{你的路徑}\liteide\bin\liteide.exe”就可以看見 3 所示:

圖 3 liteIDE 主介面

配置 liteIDE,點擊功能表列“查看->選項”,會看見 4 所示:

圖 4 配置 liteIDE

左邊選擇“LiteIDE”,右邊選擇你的環境,比如,我的是 Windows 7 64 位元,就選 win64-user.env,雙擊後,會看見該設定檔的內容:、

# native compiler windows amd64
 
GOROOT=C:\Go
#GOBIN=
GOARCH=amd64
GOOS=windows
CGO_ENABLED=1
 
PATH=%GOROOT%\bin;%PATH%
 
LITEIDE_GDB=gdb64
LITEIDE_MAKE=mingw32-make
LITEIDE_TERM=%COMSPEC%
LITEIDE_TERMARGS=
LITEIDE_EXEC=%COMSPEC%
LITEIDE_EXECOPT=/C

除了 win64-user.env 外,還有 win64.env,前者是使用者設定檔,後者是整個機器的設定檔,因為 Windows 作業系統是多使用者的。

確保 GOROOT=C:\ 行,是你機器的實際 Go SDK 的路徑即可,比如,我的路徑其預設路徑 C:\Go

工作路徑。你可以為 LiteIDE 配置工作路徑。選擇工具列”Go表徵圖”,會看見圖 5 所示:

圖 5 配置工作路徑

你可以看見兩個路徑,第一個是我自訂的,第二個是系統預設的。

參考資料

  • Wiki Go
  • 百度 Go

 

下載開發工具

下載相關文檔手冊

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.