首頁  >  文章  >  後端開發  >  go語言常用指令有哪些

go語言常用指令有哪些

PHPz
PHPz原創
2020-12-16 16:23:015458瀏覽

go語言常用指令有:1、go build;2、go clean;3、go fmt;4、go get;5、go install;6、go test;7、go doc;8、go fix;9、go version;10、go list。

go語言常用指令有哪些

本文環境:windows10系統、Go 1.11.2,本文適用於所有品牌的電腦。

導語:

go語言常用指令有:1、go build;2、go clean;3、go fmt;4、go get;5、go install;6、go test; 7、go doc;8、go fix;9、go version;10、go list。

(學習影片分享:程式設計影片

常用指令如下:

1、go build

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 -o myapp.exe,預設情況是你的package名稱(非main套件),或是第一個原始檔的檔名(main包)。 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文件,其它系統命名後綴文件全部忽略。

2、go clean

go clean 指令是用來移除目前原始碼包裡面編譯產生的文件,這些文件包括

_obj/ 舊的object目錄,由Makefiles遺留
_test/ 舊的test目錄,由Makefiles遺留
_testmain.go 舊的gotest文件,由Makefiles遺留
test.out 舊的test記錄,由Makefiles遺留
build .out 舊的test記錄,由Makefiles遺留
*.[568ao] object文件,由Makefiles遺留
DIR(.exe) 由go build 產生
DIR.test(.exe) 由go test - c 產生
MAINFILE(.exe) 由go build MAINFILE.go產生

#3、go fmt

go fmt 指令主要是用來幫你格式化所寫好的程式碼文件。

例如我們寫了一個格式很糟糕的 test.go 文件,我們只需要使用 fmt go test.go 指令,就可以讓go幫我們格式化我們的程式碼檔案。但我們一般很少使用這個指令,因為我們的開發工具一般都帶有儲存時自動格式化功能,這個功能底層其實就是呼叫了 go fmt 指令而已。

使用go fmt指令,更多時候是用gofmt,而且需要參數-w,否則格式化結果不會寫入檔案。 gofmt -w src,可以格式化整個專案。

4、go get

go get 指令主要是用來動態取得遠端程式碼包的,目前支援的有BitBucket、GitHub、Google Code和Launchpad。這個指令在內部其實分成了兩步驟操作:第一步是下載原始碼包,第二步是執行go install。下載原始碼包的go工具會自動根據不同的網域呼叫不同的原始碼工具,對應如下:

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。

5、go install

go install 指令在內部實際上分成了兩步驟操作:第一步是產生結果檔(可執行檔或.a包),第二步會把編譯好的結果移到 G O P A T H / p k g 或GOPATH/pkg 或GOPATH/pkg或GOPATH/bin。

.exe檔: 一般是 go install 帶有main函數的go檔案產生的,有函數入口,所有可以直接運行。

.a應用程式套件: 一般是 go install 不包含main函數的go檔案產生的,沒有函數入口,只能被呼叫。

6、go test

go test 指令,會自動讀取原始碼目錄下面名為*_test.go的文件,產生並執行測試用的可執行檔。輸出的資訊類似

ok archive/tar 0.011s FAIL archive/zip 0.022s ok compress/gzip
0.033s …

默认的情况下,不需要任何的参数,它会自动把你源码包下面所有test文件测试完毕,当然你也可以带上参数,详情请参考go help testflag

7、go doc

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中所有项目的相关文档,这对于经常被限制访问的用户来说是一个不错的选择。

8、其他命令

go fix 用来修复以前老版本的代码到新版本,例如go1之前老版本的代码转化到go1

go version 查看go当前的版本

go env 查看当前go的环境变量

go list 列出当前全部安装的package

go run 编译并运行Go程序

对于不知道的命令,可以通过git help进行查看。

相关推荐:golang教程

以上是go語言常用指令有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn