Go語言幾大命令簡單介紹

2021-07-08 17:13:56 字數 2500 閱讀 4569

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.如...