Go(又稱 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 開發(fā)的一種靜態(tài)強(qiáng)類型、編譯型語言。Go 語言語法與 C 相近,但功能上有:內(nèi)存安全,GC(垃圾回收),結(jié)構(gòu)形態(tài)及 CSP-style 并發(fā)計(jì)算。
滿洲網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站設(shè)計(jì)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。成都創(chuàng)新互聯(lián)公司于2013年開始到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)公司。
go語言特點(diǎn)
go語言的應(yīng)用領(lǐng)域
哪些公司(項(xiàng)目)在使用go語言
下載開發(fā)包
windows下安裝
1.打開下載的msi可執(zhí)行文件,根據(jù)提示進(jìn)行安裝。默認(rèn)會(huì)安裝在c:/Program Files/go目錄下面。會(huì)自動(dòng)添加go可執(zhí)行文件環(huán)境變量。
2.驗(yàn)證安裝情況
a.打開命令行
b. 輸入$ go version
linux下安裝
1.在/usr/local/下面創(chuàng)建一個(gè)目錄go
2.下載壓縮文件到該目錄(/usr/local/go),并解壓縮
3.添加/usr/local/go/bin到PATH環(huán)境變量,打開$HOME/.profile 或者/etc/profile輸入如下內(nèi)容:
4.執(zhí)行如下命令使得配置文件及時(shí)生效
驗(yàn)證
1.如果你的mac有Homebrew包管理工具,可以使用它來安裝
2.如果沒有下載mac安裝包,根據(jù)提示安裝
3.默認(rèn)安裝在/usr/local/go下面
4.設(shè)置環(huán)境變量,同Linux
注意:以下GOPAT自己新建一個(gè)目錄,不要放在go的安裝目錄下,會(huì)報(bào)錯(cuò)
sudo vi ~/.bash_profile
export GOPATH=/Users/GoWorkEnv
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOBIN
source ~/.bash_profile
go env
正常如下:
配置軟連接
sudo ln -fs /usr/local/go/bin/go /usr/local/bin/go
ln -fs 強(qiáng)力創(chuàng)建符號(hào)連接(symlinks)
符號(hào)連接類似windows 的快捷方式
Go1.5開發(fā)環(huán)境依賴Go1.4版本作為引導(dǎo),因?yàn)镚o1.5使用Go本身來編譯安裝Go,所以必須保證服務(wù)器上已經(jīng)安裝Go1.4,這完全是為了解決先有雞還是先有蛋的問題,當(dāng)然如果你想避免編譯安裝1.4也可以直接使用二進(jìn)制包。
在這里假設(shè)你希望將go1.5安裝到$HOME/go1.5目錄下,只需要以下幾步:
下載Go1.5的源碼放到$HOME/go1.5目錄下
在安裝Go1.5之前需要將Go1.4放到$HOME/go1.4下面或者export GOROOT_BOOTSTRAP=/go1.4安裝目錄/
到$HOME/go1.5/src/下執(zhí)行all.bash即可
我習(xí)慣將軟件安裝至/usr/local/下,以下為我安裝Go1.5(/usr/local/go1.5)的步驟:
wget
tar zxvf go1.5.1.src.tar.gz
mv ./go /usr/local/go1.5
wget
tar zxvf go1.4.3.src.tar.gz
mv ./go /usr/local/go-bootstrap1.4/
cd /usr/local/go-bootstrap1.4/src
./all.bash //編譯安裝Go1.4,有可能test不通過,只要編譯通過,test可忽略,目的是需要go1.4的二進(jìn)制包來編譯1.5
cd /usr/local/go1.5/src
GOROOT_BOOTSTRAP=/usr/local/go-bootstrap1.4 ./all.bash
//可在環(huán)境變量中添加GOROOT_BOOTSTRAP,然后再編譯Go1.5
以下為網(wǎng)摘:
From C to Go
The gc tool chain is being converted from C to Go.
An ongoing process, started early 2014.
Russ Cox says "It'll be done by March [2015]."
New link tool to replace 6l, 8l, etc.
New asm tool to replace 6a, 8a, etc.
Machine-translated gc to replace 6g, 8g, etc.
Design doc:
golang.org/s/go13compiler
Go 1.5 will have no C code in the tool chain or runtime.
Go語言將使用Go代替C重寫運(yùn)行時(shí)環(huán)境
Go 1.4 的合并窗口在 9 月份將關(guān)閉,從現(xiàn)在開始到12月份發(fā)布 Go 1.4 之前將只接受 bug 修復(fù)和小調(diào)整。
Go 1.4 最主要的變化是將使用 Go 語言本身來重寫 Go 的運(yùn)行時(shí),而之前是采用 C 語言開發(fā)。這也是為什么 Go 的發(fā)行版中包含一個(gè) C
編譯器的原因。
使用 Go 重寫的好處是:
當(dāng)前如果在 Goroutine 的調(diào)用堆棧中發(fā)現(xiàn) C 代碼,runtime 將在需要增長堆棧時(shí)回滾到老的堆棧方法。如果使用 Go 來重寫
runtime,那么堆棧拷貝的方法就會(huì)更加高效
目前轉(zhuǎn)換工作只計(jì)劃轉(zhuǎn) Go 編譯器 (5g, 6g, 8g), 而不是 C 編譯器,降低運(yùn)行時(shí)中的 C 代碼行數(shù),甚至可能完全清除
注意
這是 golang.org 分發(fā)版,也就是 gc ,而不是 gccgo
這是不同的 C 編譯器,gc 工具鏈將使用你系統(tǒng)的 C 編譯器來編譯,gc 運(yùn)行時(shí)則使用它的 C 編譯器來編譯
8月20日后增加的轉(zhuǎn)換行可能跟 this request 有關(guān).
Go語言將使用Go代替C重寫運(yùn)行時(shí)環(huán)境
— 從現(xiàn)在開始到12月份 Go 1.4版本發(fā)布前,Go將只接受Bug修復(fù)和小范圍的調(diào)整,Go
1.4版本將實(shí)現(xiàn)使用Go語言來重寫Go的運(yùn)行時(shí)環(huán)境。
1.1 Go 安裝
Go的三種安裝方式
Go有多種安裝方式,你可以選擇自己喜歡的。這里我們介紹三種最常見的安裝方式:
Go源碼安裝:這是一種標(biāo)準(zhǔn)的軟件安裝方式。對(duì)于經(jīng)常使用Unix類系統(tǒng)的用戶,尤其對(duì)于開發(fā)者來說,從源碼安裝可以自己定制。
Go標(biāo)準(zhǔn)包安裝:Go提供了方便的安裝包,支持Windows、Linux、Mac等系統(tǒng)。這種方式適合快速安裝,可根據(jù)自己的系統(tǒng)位數(shù)下載好相應(yīng)的安裝包,一路next就可以輕松安裝了。**推薦這種方式**
第三方工具安裝:目前有很多方便的第三方軟件包工具,例如Ubuntu的apt-get、Mac的homebrew等。這種安裝方式適合那些熟悉相應(yīng)系統(tǒng)的用戶。
最后,如果你想在同一個(gè)系統(tǒng)中安裝多個(gè)版本的Go,你可以參考第三方工具GVM,這是目前在這方面做得最好的工具,除非你知道怎么處理。
Go源碼安裝
在Go的源代碼中,有些部分是用Plan 9 C和ATT匯編寫的,因此假如你要想從源碼安裝,就必須安裝C的編譯工具。
在Mac系統(tǒng)中,只要你安裝了Xcode,就已經(jīng)包含了相應(yīng)的編譯工具。
在類Unix系統(tǒng)中,需要安裝gcc等工具。例如Ubuntu系統(tǒng)可通過在終端中執(zhí)行sudo apt-get install gcc
libc6-dev來安裝編譯工具。
在Windows系統(tǒng)中,你需要安裝MinGW,然后通過MinGW安裝gcc,并設(shè)置相應(yīng)的環(huán)境變量。
你可以直接去官網(wǎng)下載源碼,找相應(yīng)的goVERSION.src.tar.gz的文件下載,下載之后解壓縮到$HOME目錄,執(zhí)行如下代碼:
cd go/src
./all.bash
運(yùn)行all.bash后出現(xiàn)"ALL TESTS PASSED"字樣時(shí)才算安裝成功。
上面是Unix風(fēng)格的命令,Windows下的安裝方式類似,只不過是運(yùn)行all.bat,調(diào)用的編譯器是MinGW的gcc。
如果是Mac或者Unix用戶需要設(shè)置幾個(gè)環(huán)境變量,如果想重啟之后也能生效的話把下面的命令寫到.bashrc或者.zshrc里面,
export GOPATH=$HOME/gopath
export PATH=$PATH:$HOME/go/bin:$GOPATH/bin
如果你是寫入文件的,記得執(zhí)行bash .bashrc或者bash
.zshrc使得設(shè)置立馬生效。
如果是window系統(tǒng),就需要設(shè)置環(huán)境變量,在path里面增加相應(yīng)的go所在的目錄,設(shè)置gopath變量。
當(dāng)你設(shè)置完畢之后在命令行里面輸入go,看到如下圖片即說明你已經(jīng)安裝成功
圖1.1 源碼安裝之后執(zhí)行Go命令的圖
如果出現(xiàn)Go的Usage信息,那么說明Go已經(jīng)安裝成功了;如果出現(xiàn)該命令不存在,那么可以檢查一下自己的PATH環(huán)境變中是否包含了Go的安裝目錄。
關(guān)于上面的GOPATH將在下面小節(jié)詳細(xì)講解
Go標(biāo)準(zhǔn)包安裝
Go提供了每個(gè)平臺(tái)打好包的一鍵安裝,這些包默認(rèn)會(huì)安裝到如下目錄:/usr/local/go
(Windows系統(tǒng):c:\Go),當(dāng)然你可以改變他們的安裝位置,但是改變之后你必須在你的環(huán)境變量中設(shè)置如下信息:
export GOROOT=$HOME/go
export GOPATH=$HOME/gopath
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
上面這些命令對(duì)于Mac和Unix用戶來說最好是寫入.bashrc或者.zshrc文件,對(duì)于windows用戶來說當(dāng)然是寫入環(huán)境變量。
如何判斷自己的操作系統(tǒng)是32位還是64位?
我們接下來的Go安裝需要判斷操作系統(tǒng)的位數(shù),所以這小節(jié)我們先確定自己的系統(tǒng)類型。
Windows系統(tǒng)用戶請(qǐng)按Win+R運(yùn)行cmd,輸入systeminfo后回車,稍等片刻,會(huì)出現(xiàn)一些系統(tǒng)信息。在“系統(tǒng)類型”一行中,若顯示“x64-based
PC”,即為64位系統(tǒng);若顯示“X86-based PC”,則為32位系統(tǒng)。
Mac系統(tǒng)用戶建議直接使用64位的,因?yàn)镚o所支持的Mac OS X版本已經(jīng)不支持純32位處理器了。
Linux系統(tǒng)用戶可通過在Terminal中執(zhí)行命令arch(即uname
-m)來查看系統(tǒng)信息:
64位系統(tǒng)顯示
x86_64
32位系統(tǒng)顯示
i386
Mac 安裝
訪問下載地址,32位系統(tǒng)下載go1.4.2.darwin-386-osx10.8.pkg,64位系統(tǒng)下載go1.4.2.darwin-amd64-osx10.8.pkg,雙擊下載文件,一路默認(rèn)安裝點(diǎn)擊下一步,這個(gè)時(shí)候go已經(jīng)安裝到你的系統(tǒng)中,默認(rèn)已經(jīng)在PATH中增加了相應(yīng)的~/go/bin,這個(gè)時(shí)候打開終端,輸入go
看到類似上面源碼安裝成功的圖片說明已經(jīng)安裝成功
如果出現(xiàn)go的Usage信息,那么說明go已經(jīng)安裝成功了;如果出現(xiàn)該命令不存在,那么可以檢查一下自己的PATH環(huán)境變中是否包含了go的安裝目錄。
Linux 安裝
訪問下載地址,32位系統(tǒng)下載go1.4.2.linux-386.tar.gz,64位系統(tǒng)下載go1.4.2.linux-amd64.tar.gz,
假定你想要安裝Go的目錄為 $GO_INSTALL_DIR,后面替換為相應(yīng)的目錄路徑。
解壓縮tar.gz包到安裝目錄下:tar zxvf go1.4.2.linux-amd64.tar.gz -C
$GO_INSTALL_DIR。
設(shè)置PATH,export PATH=$PATH:$GO_INSTALL_DIR/go/bin
然后執(zhí)行g(shù)o
圖1.2 Linux系統(tǒng)下安裝成功之后執(zhí)行g(shù)o顯示的信息
如果出現(xiàn)go的Usage信息,那么說明go已經(jīng)安裝成功了;如果出現(xiàn)該命令不存在,那么可以檢查一下自己的PATH環(huán)境變中是否包含了go的安裝目錄。
Windows 安裝
訪問Google Code 下載頁,32
位請(qǐng)選擇名稱中包含 windows-386 的 msi 安裝包,64 位請(qǐng)選擇名稱中包含 windows-amd64 的。下載好后運(yùn)行,不要修改默認(rèn)安裝目錄
C:\Go\,若安裝到其他位置會(huì)導(dǎo)致不能執(zhí)行自己所編寫的 Go 代碼。安裝完成后默認(rèn)會(huì)在環(huán)境變量 Path 后添加 Go 安裝目錄下的 bin 目錄
C:\Go\bin\,并添加環(huán)境變量 GOROOT,值為 Go 安裝根目錄 C:\Go\ 。
驗(yàn)證是否安裝成功
在運(yùn)行中輸入 cmd 打開命令行工具,在提示符下輸入 go,檢查是否能看到 Usage 信息。輸入
cd %GOROOT%,看是否能進(jìn)入 Go 安裝目錄。若都成功,說明安裝成功。
不能的話請(qǐng)檢查上述環(huán)境變量 Path 和 GOROOT 的值。若不存在請(qǐng)卸載后重新安裝,存在請(qǐng)重啟計(jì)算機(jī)后重試以上步驟。
第三方工具安裝
GVM
gvm是第三方開發(fā)的Go多版本管理工具,類似ruby里面的rvm工具。使用起來相當(dāng)?shù)姆奖?,安裝gvm使用如下命令:
bash (curl -s -S -L )
安裝完成后我們就可以安裝go了:
gvm install go1.4.2
gvm use go1.4.2
也可以使用下面的命令,省去每次調(diào)用gvm use的麻煩: gvm use go1.4.2 --default
執(zhí)行完上面的命令之后GOPATH、GOROOT等環(huán)境變量會(huì)自動(dòng)設(shè)置好,這樣就可以直接使用了。
apt-get
Ubuntu是目前使用最多的Linux桌面系統(tǒng),使用apt-get命令來管理軟件包,我們可以通過下面的命令來安裝Go,為了以后方便,應(yīng)該把
git mercurial 也安裝上:
sudo apt-get install python-software-properties
sudo add-apt-repository ppa:gophers/go
sudo apt-get update
sudo apt-get install golang-stable git-core mercurial
homebrew
homebrew是Mac系統(tǒng)下面目前使用最多的管理軟件的工具,目前已支持Go,可以通過命令直接安裝Go,為了以后方便,應(yīng)該把
git mercurial 也安裝上:
brew update brew upgrade
brew install go
brew install git
brew install mercurial