go build 命令主要是用於測試編譯。在包的編譯過程中,若有必要,會同時編譯與之相關聯的包。
如果是普通包,當你執行go build命令後,不會產生任何檔案。
如果是main包,當只執行go build命令後,會在當前目錄下生成乙個可執行檔案。如果需要在$gopath/bin木下生成相應的exe檔案,需要執行go install 或者使用 go build -o 路徑/a.exe。
如果某個資料夾下有多個檔案,而你只想編譯其中某乙個檔案,可以在 go build 之後加上檔名,例如 go build a.go;go build 命令缺省會編譯當前目錄下的所有go檔案。
go build 會忽略目錄下以」_」或者」.」開頭的go檔案。
如果你的源**針對不同的作業系統需要不同的處理,那麼你可以根據不同的作業系統字尾來命名檔案。例如有乙個讀取陣列的程式,它對於不同的作業系統可能有如下幾個原始檔:
array_linux.go
array_darwin.go
array_windows.go
array_freebsd.go
go build的時候會選擇性地編譯以系統名結尾的檔案(linux、darwin、windows、freebsd)。例如linux系統下面編譯只會選擇array_linux.go檔案,其它系統命名字尾檔案全部忽略。
go clean 命令是用來移除當前原始碼包裡面編譯生成的檔案,這些檔案包括
go fmt 命令主要是用來幫你格式化所寫好的**檔案。
比如我們寫了乙個格式很糟糕的 test.go 檔案,我們只需要使用 fmt go test.go 命令,就可以讓go幫我們格式化我們的**檔案。但是我們一般很少使用這個命令,因為我們的開發工具一般都帶有儲存時自動格式化功能,這個功能底層其實就是呼叫了 go fmt 命令而已。
使用go fmt命令,更多時候是用gofmt,而且需要引數-w,否則格式化結果不會寫入檔案。gofmt -w src,可以格式化整個專案。
bitbucket (mercurial git)
github (git)
google code project hosting (git, mercurial, subversion)
launchpad (bazaar)
所以為了go get 能正常工作,你必須確保安裝了合適的原始碼管理工具,並同時把這些命令加入你的path中。其實go get支援自定義網域名稱的功能,具體參見go help remote。
go get 命令本質上可以理解為:首先通過原始碼工具clone**到src目錄,然後執行go install。
go install 命令在內部實際上分成了兩步操作:第一步是生成結果檔案(可執行檔案或者.a包),第二步會把編譯好的結果移到 $gopath/pkg 或者 $gopath/bin。
.exe檔案: 一般是 go install 帶main函式的go檔案產生的,有函式入口,所有可以直接執行。
.a應用包: 一般是 go install 不包含main函式的go檔案產生的,沒有函式入口,只能被呼叫。
go test 命令,會自動讀取原始碼目錄下面名為*_test.go的檔案,生成並執行測試用的可執行檔案。輸出的資訊類似
ok archive/tar 0.011s
fail archive/zip 0.022s
ok compress/gzip 0.033s
...
預設的情況下,不需要任何的引數,它會自動把你原始碼包下面所有test檔案測試完畢,當然你也可以帶上引數,詳情請參考go help testflag
go doc 命令其實就是乙個很強大的文件工具。
如何檢視相應package的文件呢? 例如builtin包,那麼執行go doc builtin;如果是http包,那麼執行go doc net/http;檢視某乙個包裡面的函式,那麼執行godoc fmt printf;也可以檢視相應的**,執行godoc -src fmt printf;
通過命令在命令列執行 godoc -http=:埠號 比如godoc -http=:8080。然後在瀏覽器中開啟127.0.0.1:8080,你將會看到乙個golang.org的本地copy版本,通過它你可以查詢pkg文件等其它內容。如果你設定了gopath,在pkg分類下,不但會列出標準包的文件,還會列出你本地gopath中所有專案的相關文件,這對於經常被限制訪問的使用者來說是乙個不錯的選擇。
go語言還提供了其它有用的工具,例如下面的這些工具
go fix 用來修復以前老版本的**到新版本,例如go1之前老版本的**轉化到go1
go version 檢視go當前的版本
go env 檢視當前go的環境變數
go list 列出當前全部安裝的package
go run 編譯並執行go程式
Go語言介紹
2 go安裝 2.2 解壓 3 hello world 4 執行方法 go是一門編譯型語言,go語言的工具鏈將源 及其依賴轉換成計算機的機器指令 譯註 靜態編譯 go 是乙個開源的程式語言,它能讓構造簡單 可靠且高效的軟體變得容易。go 語言被設計成一門應用於搭載 web 伺服器,儲存集群或類似用途...
Go語言介紹
go語言是谷歌2009發布的第二款開源程式語言。go語言專門針對多處理器系統應用程式的程式設計進行了優化,使用go編譯的程式可以媲美c或c 的速度,而且更加安全 支援並行程序。1 可直接編譯成機器碼,不依賴其他庫,glibc的版本有一定要求,部署就是扔乙個檔案上去就完成了。2 靜態型別語言,但是有動...
Go語言命令列操作命令詳細介紹
go 命令 go語言自帶有一套完整的命令操作工具,你可以通過在命令列中執行go來檢視它們 圖1.3 go命令顯示詳細的資訊 這些命令對於我們平時編寫的 非常有用,接下來就讓我們了解一些常用的命令。go build 這個命令主要用於測試編譯。在包的編譯過程中,若有必要,會同時編譯與之相關聯的包。1.如...