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。
本文環境: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中文網其他相關文章!

Go語言的核心特性包括垃圾回收、靜態鏈接和並發支持。 1.Go語言的並發模型通過goroutine和channel實現高效並發編程。 2.接口和多態性通過實現接口方法,使得不同類型可以統一處理。 3.基本用法展示了函數定義和調用的高效性。 4.高級用法中,切片提供了動態調整大小的強大功能。 5.常見錯誤如競態條件可以通過gotest-race檢測並解決。 6.性能優化通過sync.Pool重用對象,減少垃圾回收壓力。

Go語言在構建高效且可擴展的系統中表現出色,其優勢包括:1.高性能:編譯成機器碼,運行速度快;2.並發編程:通過goroutines和channels簡化多任務處理;3.簡潔性:語法簡潔,降低學習和維護成本;4.跨平台:支持跨平台編譯,方便部署。

關於SQL查詢結果排序的疑惑學習SQL的過程中,常常會遇到一些令人困惑的問題。最近,筆者在閱讀《MICK-SQL基礎�...

golang ...

Go語言中如何對比並處理三個結構體在Go語言編程中,有時需要對比兩個結構體的差異,並將這些差異應用到第�...

GoLand中自定義結構體標籤不顯示怎麼辦?在使用GoLand進行Go語言開發時,很多開發者會遇到自定義結構體標籤在�...


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

禪工作室 13.0.1
強大的PHP整合開發環境

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)