go [第一篇]初識

【第一篇】linux

簡介

Go 是一個開源的編程語言,它能讓構造簡單、可靠且高效的軟件變得容易。golang

Go是從2007年底由Robert Griesemer, Rob Pike, Ken Thompson主持開發,後來還加入了Ian Lance Taylor, Russ Cox等人,並最終於2009年11月開源,在2012年早些時候發佈了Go 1穩定版本。如今Go的開發已是徹底開放的,而且擁有一個活躍的社區。web

特色

  • 簡潔、快速、安全
  • 並行、有趣、開源
  • 內存管理、數組安全、編譯迅速

應用

  • 服務器編程, 如處理日誌、數據打包、虛擬機處理、文件系統等
  • 分佈式系統 (數據庫代理、中間件)
  • 網絡編程 (web應用、api應用)
  • 雲平臺 例如 docker、k8s都是go語言開發的

環境搭建及IDE安裝使用

Go 語言支持如下系統:docker

  • Linux
  • FreeBSD
  • Mac OS X(也稱爲 Darwin)
  • Window

安裝包下載地址爲: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

  1. export GOROOT=$PATH:/path/to/go/
  2. export PATH=$PATH:$GOROOT/bin/
  3. export GOPATH=/home/user/project/go

終端測試:數組

  1. go version
  2. go env
  3. Gofmt -w *.go

HelloWorld

建立工做目錄 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/amd64freebsd/amd64darwin/amd64windows/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
print 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。

如下是無效的標識符:

  • 1ab(以數字開頭)
  • case(Go 語言的關鍵字)
  • a+b(運算符是不容許的)

_ 自己就是一個特殊的標識符,被稱爲空白標識符。它能夠像其餘標識符那樣用於變量的聲明或賦值(任何類型均可以賦值給它),但任何賦給這個標識符的值都將被拋棄,所以這些值不能在後續的代碼中使用,也不可使用這個標識符做爲變量對其它變量進行賦值或運算。

在編碼過程當中,你可能會遇到沒有名稱的變量、類型或方法。雖然這不是必須的,但有時候這樣作能夠極大地加強代碼的靈活性,這些變量被統稱爲匿名變量。

---恢復內容結束---

相關文章
相關標籤/搜索