Go(Golang)是Google開發的一種強靜態類型、編譯型、併發型,並具備垃圾回收功能的編程語言,因此使用Go編寫的程序相比nodejs之類的弱類型語言,能夠提早在編譯階段發現錯誤,並且因爲沒有相似JVM運行時,因此編譯後的程序不是中間語言而是機器代碼。總之,它相似c/c++擁有接近它們的性能,但又沒有它們煩人的內存管理,重要的是在併發多線程方面處理的很是優雅,特別適合高併發和對性能有要求的場景下開發。好了,閒話少說,接下來看看如何安裝Go。node
Go的開發環境支持主流的操做系統,如:FreeBSD 10.3 or later(amd64, 386),Linux 2.6.23 or later with glibc(amd64, 386, arm, arm64,s390x, ppc64le),macOS 10.10 or later(amd64),Windows 7, Server 2008R2 or later(amd64,386)。若是你的開發環境就在這些系統中,那麼你就能夠在官網下載安裝包了,假如不是也沒事,能夠直接獲取源碼本身編譯安裝,不過本文不回介紹相關的內容。因爲windows上的安裝很簡單,這裏就先略過了,那麼重點說說Linux和Mac下如何安裝。linux
其實Mac環境下安裝也很簡單,有幾種方式:直接下載安裝包,使用Homebrew(包管理)安裝。我推薦使用Homebrew,用它就幾個簡單命令就能夠安裝了。若是你沒有安裝Homebrew,請自行Google。在終端下敲入如下命令:c++
~ brew install go installing...
等Homebrew的安裝操做執行完成後,你就能夠在終端上敲入如下命令驗證是否成功:golang
~ go version go version go1.10.3 darwin/amd64
哈,是否是很簡單,之因此推薦使用Homebrew安裝,方便更新管理Go的開發版本。編程
Linux下安裝就麻煩些,首先你須要確認系統的版本:windows
uname -a Linux SSS-LA 4.9.0-8-amd64 #1 SMP Debian 4.9.110-3+deb9u4 (2018-08-21) x86_64 GNU/Linux
那麼,根據終端顯示的系統版本相關信息,在這找到對應的下載連接,點擊下載或使用wget命令下載,以下所示:多線程
wget https://dl.google.com/go/go1.11.linux-amd64.tar.gz --2018-09-01 06:39:53-- https://dl.google.com/go/go1.11.linux-amd64.tar.gz Resolving dl.google.com (dl.google.com)... 2607:f8b0:4000:801::200e, 172.217.9.174 Connecting to dl.google.com (dl.google.com)|2607:f8b0:4000:801::200e|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 127163815 (121M) [application/octet-stream] Saving to: ‘go1.11.linux-amd64.tar.gz’ go1.11.linux-amd64.tar.gz 100%[============================================================================>] 121.27M 98.5MB/s in 1.2s 2018-09-01 06:39:55 (98.5 MB/s) - ‘go1.11.linux-amd64.tar.gz’ saved [127163815/127163815]
OK,接着找到下載好的目錄,使用tar命令進行解壓安裝架構
tar -C /usr/local -xzf go1.11.linux-amd64.tar.gz
一切順利的話,go就已經安裝好了,那麼來驗證下吧,請輸入如下命令:併發
go version go version go1.11 linux/amd64
在你的終端上顯示如上的相似信息,那麼 Go 就已經正確安裝到你的機器上了。那是否是能夠寫個 Hello world 了,take esay,還須要簡單的配置幾個路徑。app
GOROOT、GOPATH、PATH這三個環境變量須要在profile中設置下,能夠在.profile 或 /etc/profile 下添加這幾個環境變量
export GOROOT=/usr/local/go export GOPATH=$HOME/golib export GOBIN=$HOME/.gobin export PATH=$PATH:$GOROOT/bin:$GOBIN
GOROOT 表示的是 Go的安裝目錄
GOPATH 是 Go 表明了工做區,它是 Go 程序源碼的存放目錄,每個工做區的目錄相同,必須包含三個子目錄:src、bin、pkg。
src是存放了源碼文件,源碼文件是以代碼包組織的。pkg是存放的歸檔文件(名稱以.a爲後綴的文件),注意歸檔文件是存放在平臺相關的目錄下的,平臺相關指的是與系統和CPU架構有關。bin用於存放當前工做區中的 Go 程序的可執行文件,可是 GOBIN 設置了,執行 go install 命令後,可執行文件會存放在 GOBIN 對應的目錄下
GOBIN 是 go install 命令命令安裝執行的目錄
PATH 是爲了方便 Go 語言命令和 Go 程序的可執行文件進行設置
代碼包的導入形式有如下四種:
1) import "strings",這是最多見的,其使用方式爲 strings.HasPrefix("Gopher","Go")
2) import str "strings",這是給導入的代碼包從新命名,防止與已有的衝突,其實用方式跟上面相似 str.HasPrefix("Gopher","Go")
3) import . "strings",這種方式是將 strings 包可訪問的方法、類型等導入到當前的包中,因此就要求當前包內不能有與 strings 內的方法或類型有衝突,其使用方式跟上面徹底不一樣 *HasPrefix("Gopher","Go")
4) import _ "strings",這種方式也是導入,但當前包內不會直接使用該包
代碼包的初始化函數 init ,是在 package block variables 以後纔會執行。當一個包有多個 init 函數時,執行順序是按照文件名的ascii碼的加載執行,被導入 package 的 init 會先執行,當引入了多個 package 時,執行順序是按照文件名的ascii碼順序執行,先執行被導入包的全局變量聲明表達式,接着執行 init 函數,當執行完全部被導入包的初始化後,最後再執行當前包的初始化過程。