1 、GO簡介&環境搭建
1、Go簡介
Go語言起源及其發展:
- 2007年,谷歌把Go作為一個20%專案開始研發,即讓員工抽出本職工作之外時間的20%, 投入在該專案上。
- 2009年11月10日,Go語言以開放原始碼的方式向全球釋出。
- 2011年3月16日,Go語言的第一個穩定(stable)版本r56釋出。
- 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目錄:
tar -xzf go1.4.linux-amd64.tar.gz -C /usr/local
(x:解開一個壓縮檔案的引數指令-z:是否需要用gzip壓縮?-f:使用檔名,請留意,在 f 之後要立即接檔名不能再加引數!)
(實際上go會預設假定它被安裝到/root/go目錄下,也就是說不需要指定解壓路徑)
通過工具(如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 install
go run:
編譯並執行程式,只會產生臨時檔案。
gofmt:
格式化程式碼,大部分IDE都會在編譯前呼叫這個命令。
godoc:
文件檢視,如檢視fmt包:godoc fmt。獲取文件註釋:go doc packagename。也可以在本地建立一個官網複製版網站:godoc -http=:8080,在瀏覽器中開啟127.0.0.1:8080即可。
go env:
檢視環境變數。