Go語言是谷歌2009發佈的第二款開源編程語言。linux
Go語言專門針對多處理器系統應用程序的編程進行了優化,使用Go編譯的程序能夠媲美C或C++代碼的速度,並且更加安全、支持並行進程。編程
一、可直接編譯成機器碼,不依賴其餘庫,glibc的版本有必定要求,部署就是扔一個文件上去就完成了。安全
二、靜態類型語言,可是有動態語言的感受,靜態類型的語言就是能夠在編譯的時候檢查出來隱藏的大多數問題,動態語言的感受就是有不少的包可使用,寫起來的效率很高。網絡
三、語言層面支持併發,這個就是Go語言最大的特點,能夠充分的利用多核,很容易的使用併發。併發
四、內置runtime,支持垃圾回收,這屬於動態語言的特性之一吧,雖然目前來講GC不算完美,可是足以應付咱們所能遇到的大多數狀況,特別是Go1.1以後的GC。編程語言
五、簡單易學,Go語言的做者都有C的基因,那麼Go天然而然就有了C的基因,那麼Go關鍵字是25個,可是表達能力很強大,幾乎支持大多數你在其餘語言見過的特性:繼承、重載、對象等。工具
豐富的標準庫,Go目前已經內置了大量的庫,特別是網絡庫很是強大。測試
六、內置強大的工具,Go語言裏面內置了不少工具鏈,最好的應該是gofmt工具,自動化格式化代碼,可以讓團隊review變得如此的簡單,代碼格式如出一轍,想不同都很困難。優化
跨平臺編譯,若是你寫的Go代碼不包含cgo,那麼就能夠作到window系統編譯linux的應用,如何作到的呢?Go引用了plan9的代碼,這就是不依賴系統的信息。ui
七、內嵌C語言支持,前面說了做者是C語言的做者,因此Go語言裏面也能夠直接包含C語言代碼,利用現有的豐富的C語言庫。
假如你已安裝了Go語言環境,你能夠在命令行執行go命令查看相關的Go語言命令:
Go is a tool for managing Go source code. Usage: go command [arguments] The commands are: build compile packages and dependencies clean remove object files doc show documentation for package or symbol env print Go environment information bug start a bug report fix run go tool fix on packages fmt run gofmt on package sources generate generate Go files by processing source get download and install packages and dependencies install compile and install packages and dependencies list list packages run compile and run Go program test test packages tool run specified go tool version print Go version vet run go tool vet on packages Use "go help [command]" for more information about a command. Additional help topics: c calling between Go and C buildmode description of build modes filetype file types gopath GOPATH environment variable environment environment variables importpath import path syntax packages description of package lists testflag description of testing flags testfunc description of testing functions Use "go help [topic]" for more information about that topic.
go env 用於打印Go語言的環境信息。
go run 命令能夠編譯並運行命令源碼文件。
go get 能夠根據要求和實際狀況從互聯網上下載或更新指定的代碼包及其依賴包,並對它們進行編譯和安裝。
go build 命令用於編譯咱們指定的源碼文件或代碼包以及它們的依賴包。
go install 用於編譯並安裝指定的代碼包及它們的依賴包。
go clean 命令會刪除掉執行其它命令時產生的一些文件和目錄。
go doc 命令能夠打印附於Go語言程序實體上的文檔。咱們能夠經過把程序實體的標識符做爲該命令的參數來達到查看其文檔的目的。
go test 命令用於對Go語言編寫的程序進行測試。
go list 命令的做用是列出指定的代碼包的信息。
go fix 會把指定代碼包的全部Go語言源碼文件中的舊版本代碼修正爲新版本的代碼。
go vet 是一個用於檢查Go語言源碼中靜態錯誤的簡單工具。
go tool pprof 命令來交互式的訪問概要文件的內容。