真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Go語言開發(fā)(一)、Go語言簡介

Go語言開發(fā)(一)、Go語言簡介

一、Go語言簡介

1、Go語言簡介

Go,全稱golang,是Google開發(fā)的一種靜態(tài)強(qiáng)類型、編譯型、并發(fā)型并具有垃圾回收功能的編程語言。 Go從2007年末由Robert Griesemer、Rob Pike、Ken Thompson(C語言發(fā)明者)主持開發(fā),于2009年11月正式宣布成為開放源代碼項(xiàng)目,并在Linux及Mac OS X平臺上進(jìn)行了實(shí)現(xiàn),后續(xù)增加了Windows平臺的實(shí)現(xiàn)。2012年初,Go語言官方發(fā)布了Go 1.0穩(wěn)定版本,目前Go語言基于1.x每半年發(fā)布一個版本。

創(chuàng)新互聯(lián)公司專注于企業(yè)營銷型網(wǎng)站建設(shè)、網(wǎng)站重做改版、白銀網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、成都h5網(wǎng)站建設(shè)商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為白銀等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

2、Go語言的優(yōu)點(diǎn)

Go語言優(yōu)點(diǎn)如下:
A、可直接編譯成機(jī)器碼
B、豐富的標(biāo)準(zhǔn)庫支持
C、內(nèi)置強(qiáng)大的工具
D、支持跨平臺編譯
E、支持自動垃圾回收
F、更豐富的內(nèi)置類型支持
G、支持函數(shù)多返回值
H、錯誤處理支持
I、支持匿名函數(shù)和閉包
J、支持類型和接口
L、支持并發(fā)編程
M、支持反射
N、支持與C語言交互

3、Go語言的缺點(diǎn)

Go語言缺點(diǎn)如下:
A、缺少框架
B、軟件包管理不完善

4、Go語言用途

Go語言主要用途如下:
A、服務(wù)器編程,如處理日志、數(shù)據(jù)打包、虛擬機(jī)處理、文件系統(tǒng)等
B、分布式系統(tǒng),數(shù)據(jù)庫代理器等
C、網(wǎng)絡(luò)編程,如Web應(yīng)用、API應(yīng)用、下載應(yīng)用
D、內(nèi)存數(shù)據(jù)庫,如groupcache、couchbase的部分組建
E、云平臺,目前國外很多云平臺在采用Go開發(fā),CloudFoundy的部分組建,前VMare的技術(shù)總監(jiān)自己出來搞的apcera云平臺。

二、Go語言環(huán)境安裝

1、Go語言環(huán)境下載

Go語言支持以下系統(tǒng):
A、Linux
B、FreeBSD
C、Mac OS X(Darwin)
D、Windows
Go語言環(huán)境安裝包下載地址:
https://golang.org/dl/
https://golang.google.cn/dl/
Go語言開發(fā)(一)、Go語言簡介
根據(jù)操作系統(tǒng)平臺下載相應(yīng)的Go語言環(huán)境安裝包。

2、Linux平臺安裝Go語言環(huán)境

將下載的源碼包解壓至/usr/local目錄
sudo tar -C /usr/local -xzf go1.10.1.linux-amd64.tar.gz
將 /usr/local/go/bin目錄添加至PATH環(huán)境變量
export PATH=$PATH:/usr/local/go/bin

3、MAC平臺安裝Go語言環(huán)境

MAC平臺可以使用.pkg結(jié)尾的安裝包直接雙擊來完成安裝,安裝目錄在 /usr/local/go/下。
brew install go

4、Windows平臺安裝Go語言環(huán)境

Windows平臺可以使用.msi 后綴的安裝包來安裝。
默認(rèn)情況下.msi文件會安裝在c:\Go目錄下,可以將 c:\Go\bin目錄添加到PATH環(huán)境變量中。添加后需要重啟命令窗口才能生效。

三、Go命令行工具

1、Go命令簡介

Go語言自帶有一套完整的命令操作工具,可以通過在命令行中執(zhí)行g(shù)o或go help來查看:
Go語言開發(fā)(一)、Go語言簡介

2、go build

go build命令主要用于測試編譯。在包的編譯過程中,若有必要,會同時編譯與依賴包。
如果是普通包,執(zhí)行g(shù)o build命令后不會產(chǎn)生任何文件。
如果是main包,執(zhí)行g(shù)o build命令后,會在當(dāng)前目錄下生成一個可執(zhí)行文件。如果需要在$GOPATH/bin木下生成相應(yīng)的exe文件,需要執(zhí)行g(shù)o install 或者使用 go build -o 路徑/a.exe。
如果某個文件夾下有多個文件,而只想編譯其中某一個文件,可以在go build之后加上文件名,例如go build a.go。go build命令默認(rèn)會編譯當(dāng)前目錄下的所有g(shù)o文件。
可以指定編譯輸出的文件名。比如,可以指定go build -o myapp,默認(rèn)情況是package名(非main包),或者是第一個源文件的文件名(main包)。
go build會忽略目錄下以"_"或者”."開頭的go文件。
如果源代碼針對不同的操作系統(tǒng)需要不同的處理,那么可以根據(jù)不同的操作系統(tǒng)后綴來命名文件。例如有一個讀取數(shù)組的程序,對于不同的操作系統(tǒng)可能有如下幾個源文件:

array_linux.go 
array_darwin.go 
array_windows.go 
array_freebsd.go

go build時會選擇性地編譯以系統(tǒng)名結(jié)尾的文件(Linux、Darwin、Windows、Freebsd)。Linux系統(tǒng)下面編譯只會選擇array_linux.go文件,其它系統(tǒng)命名后綴文件全部忽略。
如果直接使用,表示試圖編譯當(dāng)前目錄所對應(yīng)的代碼包,如果當(dāng)前目錄不是一個有效的代碼包(包含在 $GOPATH/src 目錄下)則會報(bào)錯;如果帶上代碼包名,則表示編譯指定的代碼包;如果帶上源碼文件,則表示編譯指定源碼文件。
GO語言的源碼文件分為三類,包括命令源碼文件、庫源碼文件和測試源碼文件。如果編譯的是命令源碼文件,或包含命令源碼文件的包(main包)時,編譯通過后會生成可執(zhí)行文件;反之則不會生成任何文件,只是做檢查性編譯。
可以在執(zhí)行g(shù)o build命令時,加上一些標(biāo)記,如:
-v 標(biāo)記,可以把命令執(zhí)行過程中構(gòu)建的包名(包含編譯過程中依賴的包)打印出來,如果 go build 的是一個源碼文件,則會打印出的包名為?command-line-arguments,這是編譯源碼文件時生成的虛擬包名,所以看到不用覺得奇怪。
-x 標(biāo)記,可以打印編譯期間所用到的所有shell命令。
-o 標(biāo)記,用來指定生成文件的路徑和名稱。
-a 標(biāo)記,強(qiáng)制重新編譯。
-buildmode=shared標(biāo)記,指定當(dāng)前編譯生成的結(jié)果類型,如靜態(tài)庫和動態(tài)庫。GO語言默認(rèn)使用靜態(tài)編譯,好處是部署時非常簡單,但使用動態(tài)庫,可以減少分發(fā)包的大小。目前在windows下尚不支持編譯成動態(tài)庫。
如果是直接使用,表示試圖編譯當(dāng)前目錄所對應(yīng)的代碼包,如果當(dāng)前目錄不是一個有效的代碼包(包含在 $GOPATH/src 目錄下)則會報(bào)錯;如果帶上代碼包名,則表示編譯指定的代碼包;如果帶上源碼文件,則表示編譯指定源碼文件。

3、go clean

go clean命令用來移除當(dāng)前源碼包里面編譯生成的文件,包括:
_obj/ 舊的object目錄,由Makefiles遺留
_test/ 舊的test目錄,由Makefiles遺留
_testmain.go 舊的gotest文件,由Makefiles遺留
test.out 舊的test記錄,由Makefiles遺留
build.out 舊的test記錄,由Makefiles遺留
*.[568ao] object文件,由Makefiles遺留
DIR(.exe) 由 go build 產(chǎn)生
DIR.test(.exe) 由 go test -c 產(chǎn)生
MAINFILE(.exe) 由 go build MAINFILE.go產(chǎn)生

4、go fmt

go fmt命令主要用來格式化代碼文件。
開發(fā)工具一般都帶有保存時自動格式化功能,底層其實(shí)就是調(diào)用了go fmt 命令。
gofmt -w src,可以格式化整個項(xiàng)目。

5、go get

go get命令主要用來動態(tài)獲取遠(yuǎn)程代碼包,目前支持BitBucket、GitHub、Google Code和Launchpad。go get命令在內(nèi)部分成兩步操作:第一步是下載源碼包,第二步是執(zhí)行g(shù)o install。下載源碼包的go工具會自動根據(jù)不同的域名調(diào)用不同的源碼工具,對應(yīng)關(guān)系如下:

BitBucket (Mercurial Git)
GitHub (Git)
Google Code Project Hosting (Git, Mercurial, Subversion)
Launchpad (Bazaar)

為了go get能正常工作,必須確保安裝合適的源碼管理工具,并同時把源碼管理工具命令加入到PATH中。
go get 命令本質(zhì)上是首先通過源碼工具clone代碼到src目錄,然后執(zhí)行g(shù)o install。

6、go install

go install命令在內(nèi)部分成兩步操作:第一步是生成結(jié)果文件(可執(zhí)行文件或者.a包),第二步會把編譯好的結(jié)果移到?$GOPATH/pkg 或者$GOPATH/bin。
.exe文件: 一般是go install帶main函數(shù)的go文件產(chǎn)生的,有函數(shù)入口,所有可以直接運(yùn)行。
.a應(yīng)用包: 一般是 go install不包含main函數(shù)的go文件產(chǎn)生的,沒有函數(shù)入口,只能被調(diào)用。

7、go test

go test命令會自動讀取源碼目錄下面名為*_test.go的文件,生成并運(yùn)行測試用的可執(zhí)行文件。
默認(rèn)不需要任何參數(shù),go test命令會自動把源碼包里所有test文件測試完畢,幫助信息可以使用go help testflag查看。
進(jìn)行單元測試的工具,單元測試代碼建議與被測試代碼放在同一個代碼包中,并以 "_test.go" 為后綴,測試函數(shù)建議以"Test"為名稱前綴。go test命令可以對代碼包進(jìn)行測試,也可以指定某個測試代碼文件運(yùn)行(要一并帶上被測試代碼文件)

8、go doc

go doc命令是一個很強(qiáng)大的文檔工具,用于查看文檔,如查看builti包執(zhí)行g(shù)o doc builtin,查看http包執(zhí)行g(shù)o doc net/http。查看某一個包里的函數(shù),執(zhí)行g(shù)o doc fmt Printf,也可以查看函數(shù)相應(yīng)的代碼,執(zhí)行g(shù)o doc -src fmt Printf。
通過命令在命令行執(zhí)行g(shù)odoc -http=:端口號,比如godoc -http=:8080。然后在瀏覽器中打開127.0.0.1:8080,會看到一個golang.org的本地copy版本,通過網(wǎng)頁可以查詢pk文檔等其它內(nèi)容。如果設(shè)置了GOPATH,pkg分類下會列出標(biāo)準(zhǔn)包的文檔,本地GOPATH中所有項(xiàng)目的相關(guān)文檔。

9、go fix

go fix用來修復(fù)老版本的代碼到新版本,例如go1前老版本的代碼轉(zhuǎn)化到go1。

10、go version

go version命令用于查看go當(dāng)前的版本。

11、go env

go env命令用于查看當(dāng)前go的環(huán)境變量,用于打印GO語言的環(huán)境信息,如GOPATH是工作區(qū)目錄,GOROOT是GO語言安裝目錄,GOBIN是通過go install命令生成可執(zhí)行文件的存放目錄(默認(rèn)是當(dāng)前工作區(qū)的bin目錄下),GOEXE為生成可執(zhí)行文件的后綴。

12、go list

go list命令用于列出當(dāng)前全部安裝的package。

13、go run

go run命令用于編譯并運(yùn)行Go程序,只能作用于命令源碼文件,一般用于開發(fā)中快速測試。

14、go tool

go tool命令工具,go tool pprof性能檢查工具,? ?go tool cgo跟C語言和GO語言有關(guān)的命令。

15、go vet

go vet是靜態(tài)檢查工具,用于一般項(xiàng)目快完成時進(jìn)行進(jìn)行優(yōu)化。

16、go bug

go bug命令用于GO語言調(diào)試。

17、go generate

通過掃描Go源碼中的特殊注釋來識別要運(yùn)行的常規(guī)命令。go generate不是go build的一部分,go generate不包含依賴關(guān)系分析,必須在運(yùn)行g(shù)o build前顯式運(yùn)行。go generate由Go package的作者使用,而不是其客戶端。

18、go help

go help xx命令用于查看幫助信息,如go help bug用于查看go bug的幫助信息。

四、Go語言開發(fā)環(huán)境

1、LiteIDE

LiteIDE是一款開源、跨平臺的輕量級Go語言集成開發(fā)環(huán)境(IDE)。
下載地址 :http://sourceforge.net/projects/liteide/files/
源碼地址 :https://github.com/visualfc/liteide
Go語言開發(fā)(一)、Go語言簡介

2、GoLand

Goland是由捷克JetBrains公司旨在為go開發(fā)者提供的一個符合人體工程學(xué)的新的商業(yè)IDE。Goland整合了IntelliJ平臺的有關(guān)go語言的編碼輔助功能和工具集成特點(diǎn),特點(diǎn)如下:
A、編碼輔助功能
Goland會分析開發(fā)者代碼,在符號之間尋找連接。提供代碼提示,快速導(dǎo)航,靈活的錯誤分析能力以及格式化和重構(gòu)功能。
B、符合人體工程學(xué)的設(shè)計(jì)
強(qiáng)大的靜態(tài)代碼分析能力和符合人體工程學(xué)的設(shè)計(jì),使開發(fā)者不僅僅是在工作,更是一種愉快的編程體驗(yàn)。
C、工具的集成
關(guān)鍵任務(wù)工具,例如代碼覆蓋工具,功能齊全的調(diào)試器和版本控制都集成在一起,而不會有一些隨意安裝的插件。
D、IntelliJ插件生態(tài)系統(tǒng)
除了豐富的內(nèi)置工具,如果需要任何東西,在IntelliJ插件生態(tài)系統(tǒng)中都可以找到。
官方網(wǎng)址:https://www.jetbrains.com/go/
Goland安裝完后需要對Go開發(fā)環(huán)境進(jìn)行配置。
Go語言開發(fā)(一)、Go語言簡介
點(diǎn)擊Configure->Settings菜單,配置如下:
Go語言開發(fā)(一)、Go語言簡介

五、Go語言示例

1、helloworld.go編寫

package main
import "fmt"

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

2、編譯執(zhí)行

go run helloworld.go
打印出:Hello, World!


網(wǎng)站題目:Go語言開發(fā)(一)、Go語言簡介
本文路徑:http://weahome.cn/article/jjoesj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部