【第一篇】linux
Go 是一個開源的編程語言,它能讓構造簡單、可靠且高效的軟件變得容易。golang
Go是從2007年底由Robert Griesemer, Rob Pike, Ken Thompson主持開發,後來還加入了Ian Lance Taylor, Russ Cox等人,並最終於2009年11月開源,在2012年早些時候發佈了Go 1穩定版本。如今Go的開發已是徹底開放的,而且擁有一個活躍的社區。web
Go 語言支持如下系統:docker
安裝包下載地址爲:https://golang.org/dl/。數據庫
若是打不開可使用這個地址:https://golang.google.cn/dl/。編程
各個系統對應的包名:windows
操做系統 | 包名 |
---|---|
Windows | go1.4.windows-amd64.msi |
Linux | go1.4.linux-amd64.tar.gz |
Mac | go1.4.darwin-amd64-osx10.8.pkg |
FreeBSD | go1.4.freebsd-amd64.tar.gz |
設置環境變量:api
終端測試:數組
建立工做目錄 GoProject安全
文件名: helloWorld.go,代碼以下:
package main import "fmt" func main() { fmt.Println("Hello, World!") }
go build
go build
命令用於編譯咱們指定的源碼文件或代碼包以及它們的依賴包
go build -o bin/tongbupan go_dev/tongbupan/main -o :指定編譯後存放目錄以及名稱
go install
go install
用於編譯並安裝指定的代碼包及它們的依賴包。
go get
go get
能夠根據要求和實際狀況從互聯網上下載或更新指定的代碼包及其依賴包,並對它們進行編譯和安裝。
go clean
go clean
命令會刪除掉執行其它命令時產生的一些文件和目錄
go doc & godoc
go doc
命令能夠打印附於Go語言程序實體上的文檔。咱們能夠經過把程序實體的標識符做爲該命令的參數來達到查看其文檔的目的。
godoc
是一個很強大的工具,一樣用於展現指定代碼包的文檔。
go run
go run
命令能夠編譯並運行命令源碼文件。
go run src/go_dev/hello.go
標記名稱 | 標記描述 |
---|---|
-a | 強行對全部涉及到的代碼包(包含標準庫中的代碼包)進行從新構建,即便它們已是最新的了。 |
-n | 打印編譯期間所用到的其它命令,可是並不真正執行它們。 |
-p n | 指定編譯過程當中執行各任務的並行數量(確切地說應該是併發數量)。在默認狀況下,該數量等於CPU的邏輯核數。可是在darwin/arm 平臺(即iPhone和iPad所用的平臺)下,該數量默認是1 。 |
-race | 開啓競態條件的檢測。不過此標記目前僅在linux/amd64 、freebsd/amd64 、darwin/amd64 和windows/amd64 平臺下受到支持。 |
-v | 打印出那些被編譯的代碼包的名字。 |
-work | 打印出編譯時生成的臨時工做目錄的路徑,並在編譯結束時保留它。在默認狀況下,編譯結束時會刪除該目錄。 |
-x | 打印編譯期間所用到的其它命令。注意它與-n 標記的區別。 |
go test
go test
命令用於對Go語言編寫的程序進行測試。這種測試是以代碼包爲單位的。
go list
go list
命令的做用是列出指定的代碼包的信息。
go fix與go tool fix
go fix
會把指定代碼包的全部Go語言源碼文件中的舊版本代碼修正爲新版本的代碼。
命令go fix
實際上是命令go tool fix
的簡單封裝。
go vet與go tool vet
go vet
是一個用於檢查Go語言源碼中靜態錯誤的簡單工具。
go vet
命令是go tool vet
命令的簡單封裝。
go tool pprof
go tool pprof
命令來交互式的訪問概要文件的內容。
go tool cgo
可使咱們建立可以調用C語言代碼的Go語言源碼文件。
go env
go env
用於打印Go語言的環境信息。
名稱 | 說明 |
---|---|
CGO_ENABLED | 指明cgo工具是否可用的標識。 |
GOARCH | 程序構建環境的目標計算架構。 |
GOBIN | 存放可執行文件的目錄的絕對路徑。 |
GOCHAR | 程序構建環境的目標計算架構的單字符標識。 |
GOEXE | 可執行文件的後綴。 |
GOHOSTARCH | 程序運行環境的目標計算架構。 |
GOOS | 程序構建環境的目標操做系統。 |
GOHOSTOS | 程序運行環境的目標操做系統。 |
GOPATH | 工做區目錄的絕對路徑。 |
GORACE | 用於數據競爭檢測的相關選項。 |
GOROOT | Go語言的安裝目錄的絕對路徑。 |
GOTOOLDIR | Go工具目錄的絕對路徑。 |
下面列舉了 Go 代碼中會使用到的 25 個關鍵字或保留字:
break | default | func | interface | select |
case | defer | go | map | struct |
chan | else | goto | package | switch |
const | fallthrough | if | range | type |
continue | for | import | return | var |
除了以上介紹的這些關鍵字,Go 語言還有 36 個預約義標識符:
append | bool | byte | cap | close | complex | complex64 | complex128 | uint16 |
copy | false | float32 | float64 | imag | int | int8 | int16 | uint32 |
int32 | int64 | iota | len | make | new | nil | panic | uint64 |
println | real | recover | string | true | uint | uint8 | uintptr |
程序通常由關鍵字、常量、變量、運算符、類型和函數組成。
程序中可能會使用到這些分隔符:括號 (),中括號 [] 和大括號 {}。
程序中可能會使用到這些標點符號:.、,、;、: 和 …。
Go 的源文件以 .go
爲後綴名存儲在計算機中,這些文件名均由小寫字母組成,如 scanner.go
。若是文件名由多個部分組成,則使用下劃線 _
對它們進行分隔,如 scanner_test.go
。文件名不包含空格或其餘特殊字符。
一個源文件能夠包含任意多行的代碼,Go 自己沒有對源文件的大小進行限制。
你會發如今 Go 代碼中的幾乎全部東西都有一個名稱或標識符。另外,Go 語言也是區分大小寫的,這與 C 家族中的其它語言相同。有效的標識符必須以字母(可使用任何 UTF-8 編碼的字符或 _
)開頭,而後緊跟着 0 個或多個字符或 Unicode 數字,如:X5六、group一、_x2三、i、өԑ12。
如下是無效的標識符:
_
自己就是一個特殊的標識符,被稱爲空白標識符。它能夠像其餘標識符那樣用於變量的聲明或賦值(任何類型均可以賦值給它),但任何賦給這個標識符的值都將被拋棄,所以這些值不能在後續的代碼中使用,也不可使用這個標識符做爲變量對其它變量進行賦值或運算。
在編碼過程當中,你可能會遇到沒有名稱的變量、類型或方法。雖然這不是必須的,但有時候這樣作能夠極大地加強代碼的靈活性,這些變量被統稱爲匿名變量。
---恢復內容結束---