1. 程式人生 > >1 、GO簡介及環境

1 、GO簡介及環境

Go簡介

Go語言起源及其發展:

  1. 2007年,谷歌把Go作為一個20%專案開始研發,即讓員工抽出本職工作之外時間的20%, 投入在該專案上。
  2. 2009年11月10日,Go語言以開放原始碼的方式向全球釋出。
  3. 2011年3月16日,Go語言的第一個穩定(stable)版本r56釋出。
  4. 2018 年 8 月 25日,Go語言1.11釋出。(目前最新)

核心作者:

  • Thompson:1983年圖靈獎(Turing Award)和1998年美國國家技術獎(National Medal of Technology)得主。他與Dennis Ritchie是Unix的原創者。Thompson也發明了後來衍生出C語言的B程式語言。
  • Pike:曾是貝爾實驗室(Bell Labs)的Unix團隊,和Plan 9作業系統計劃的成員。他與Thompson共事多年,並共創出廣泛使用的UTF-8 字元編碼。
  • Robert Griesemer:曾協助製作Java的HotSpot編譯器,和Chrome瀏覽器的JavaScript引擎V8。

優勢: 被譽為“21世紀的C語言”的Go語言有著很好的發展前景(但有著面向物件的特性——像混血兒) 特性:自動垃圾回收、豐富的內建型別、支援函式多返回值、錯誤處理機制、匿名函式和閉包支援、支援型別和介面、併發程式設計(最強特性)、支援反射、語言互動性(可以與C語言混編)、執行速度媲美C/C++等等。 簡而言之,Go語言是一門快速編譯,高效執行,易於開發的系統級程式語言。非常適用於web伺服器開發、也很適用於遊戲服務端,區塊鏈系統是分散式系統——也是Go語言的拿手好戲,是雲端計算時代的第一語言。當然了,Go語言開源免費,更是出身於名門望族,來日可期啊!!!

相關網站: 官方網站:golang.org 在GitHub:github.com/golang/go 谷歌郵件列表 golang-nuts 在 Google App Engine 的應用的郵件列表: google-appengine-go Twitter 的官方帳號:@golang

2、環境搭建

語言包下載: 官網:https://golang.org/dl/ 國內:https://golang.google.cn/dl/ 語言包分為三大類:原始碼包(Sorce)、免安裝包(Archive)、安裝包(Installer) 根據作業系統的不同自行選擇:Windows、Linux、Mac OS X(Darwin)、FreeBSD 安裝配置:

Linux/Mac OS X/FreeBSD: 下載xxx.tar.gz(Mac OS X也可以是.pkg檔案) 解壓至/root/go目錄:(實際上go會預設假定它被安裝到/root/go目錄下,也就是說不需要指定解壓路徑) tar -xzf go1.4.linux-amd64.tar.gz -C /usr/local(x:解開一個壓縮檔案的引數指令 -z:是否需要用gzip壓縮?-f:使用檔名,請留意,在 f 之後要立即接檔名不能再加引數!)

通過工具(如vi)編輯檔案$Home/.bashrs或$Home/.profile來配置環境變數 環境變數:

export GOROOT=\$HOME/go //安裝路徑
export PATH=\$PATH:\$GOROOT/bin  //編譯器和連結器的安裝位置
export GOPATH=\$HOME/project  //工作目錄,可以配置多個

Windows: 可以選擇下載安裝包(.msi),安裝路徑可以自己定義,筆者自己自定義路徑後(go—1.11版本)GOOROOT和PATH變數會自動配置,自己只需要配置GOPATH路徑。(在系統——高階系統設定——環境變數下設定)

目錄簡介: 安裝目錄下: api——go語言api的特性說明 bin——包含go語言編譯器、go格式化工具以及go文件工具 doc——包含示例程式、程式碼工具、本地文件等 lib——文件模板 misc——相關配置檔案及cgo示例 pkg——相關包檔案 src——go語言原始碼 工作目錄下: bin——放編譯後的可執行檔案 pkg——放編譯後的檔案 src——放原始檔 (一般,bin和pkg目錄可以不建立,go命令會自動建立(如 go install),只需要建立src目錄即可)

常見整合開發環境:

  • Sublime text
  • Intype
  • LiteIDE
  • Eclipse
  • Zeus
  • Goland

Helloworld(windows): 在工作目錄的src目錄下建立專案(如demo資料夾)並建立一個hello.go的檔案編輯程式碼:

package main
import  "fmt"
func main(){    
 fmt.Println("hello,world!")
}

在hello.go檔案目錄下開啟命令列輸入:go run hello.go,可以看到打印出:hello,world!

Go語言幾大命令: go build: 主要用於測試編譯。此命令會編譯當前目錄下的含有main函式的main檔案,其他一概忽略,無引數時以父目錄為名生成exe檔案,加上檔名如go build hello.go則生成hello.exe檔案。若存在a_linux.go與a_windows.go,在Windows作業系統上自動忽略前者。 go install: 與go install的區別在於:與build命令相比,install命令在編譯原始碼後還會將可執行檔案或庫檔案安裝到約定的目錄,如果是首次,則自動建立相應目錄。編譯後的可執行檔案放在bin目錄下,依賴包放在pkg/$GOOS_$GOARCH目錄下。 go get: 藉助程式碼管理工具通過遠端拉取或更新程式碼包及其依賴包,並自動完成編譯和安裝,如同安裝app。go get github.com/xxxxxx/xxxxx=git clone <版本庫網址> <本地儲存目錄>+go installgo run:編譯並執行程式,只會產生臨時檔案。 gofmt: 格式化程式碼,大部分IDE都會在編譯前呼叫這個命令。 godoc: 文件檢視,如檢視fmt包:godoc fmt。獲取文件註釋:go doc packagename。也可以在本地建立一個官網複製版網站:godoc -http=:8080,在瀏覽器中開啟127.0.0.1:8080即可。 go env: 檢視環境變數。