Goland中使用Golang命令行工具

2021-02-19 雲原生生態圈

gofmt

使用gofmt,您可以在打開的文件或整個Go項目中格式化Go原始碼.另外,您可以使用文件監視程序來觸發gofmt和goimport。File watcher是一個內置的GoLand工具,可讓您在更改或保存文件時自動運行命令行工具。GoLand自動保存您在文件中所做的更改。

格式化go文件, 轉到 Tools | Go Tools | Go fmt file.格式化go項目, 轉到 Tools | Go Tools | Go fmt project.在提交到git倉庫之前, 選中 Go fmt 選項框. 更多信息參考 👉Commit and push changes to Git repository.

For more information about gofmt, see Command gofmt[1].

goimports

使用goimports,您可以自動更新Go導入行(添加缺少的內容並刪除未引用的導入內容)。

如果你沒有goimports包,那麼你可以打開命令行終端使用該命令下載: go get golang.org/x/tools/cmd/goimports. 回車 ⏎.增加丟失的導入包語句,轉到 Tools | Go Tools 並點擊 Goimports file.

goimports工具還以與相同的樣式設置代碼格式gofmt。有關更多信息goimports,請參見👉Command goimports。

go generate

在go generate使用//go:generate指令來定義和調用的代碼生成。有關更多信息go generate,請參閱👉blog.golang.org上的生成代碼。

在go語言中編寫此連結,並點解該連結: //go:generate command arguments (例如: //go:generate stringer -type=Pill)點擊 Tools | Go Tools | Go generate file. 或者,點擊左側的綠色 Run 圖標 ( 選擇Go generate file .

有關的更多信息go generate,請參見 👉Generate Go files by processing source和   Generating code[2]

go vet

該go vet命令檢查Go原始碼並報告可疑結構。

使用 go vet找到可能出現的bug和一些可疑的結構體, 點擊 Tools | Go Tools | Go vet file. 你可在terminal窗口查看到代碼分析的結果

Example of go vet

有關更多信息go vet,請參閱Command vet[3]。

go vet在命令行中也是比較常用的,下面了解一下go vet在終端命令行下如何使用, 可以使用該vet工具,對一個或者多個go文件進行語法檢查

go vet cmd/http_server/*.go
go vet cmd/http_server/main.go

附加tags

我們還可以給vet 傳遞一些 tag 來指定檢測行為,默認是all,全部檢查,當傳入以下tag的時候all將被設置為false

使用方法

go vet -atomic=false test.go  

更多tag含義如下表,大家也可以去golang 官方去找 vet command的文檔,裡面更精確地描述。

tag描述-all進行全部檢查。如果有其他檢查標記被設置,則命令程序會將此值變為false。默認值為true。-asmdecl對彙編語言的源碼文件進行檢查。默認值為false。-assign檢查賦值語句。默認值為false。-atomic檢查代碼中對代碼包sync/atomic的使用是否正確。默認值為false。-composites是否使用複合結構檢查的白名單。僅供測試使用。默認值為true。-compositeWhiteList對彙編語言的源碼文件進行檢查。默認值為false。-assign檢查賦值語句。默認值為false。-methods檢查那些擁有標準命名的方法的籤名。默認值為false。-printf檢查代碼中對列印函數的使用是否正確。默認值為false。-printfuncs需要檢查的代碼中使用的列印函數的名稱的列表,多個函數名稱之間用英文半角逗號分隔。默認值為空字符串。-rangeloops檢查代碼中對在range語句塊中迭代賦值的變量的使用是否正確。默認值為false。-structtags檢查結構體類型的欄位的標籤的格式是否標準。默認值為false。-unreachable查找並報告不可到達的代碼。默認值為false。

使用Jenkins Pipeline實現Golang項目的持續集成與部署(不一樣的實現方式)

參考資料[1]

command gofmt: https://golang.org/cmd/gofmt

[2]

Generating code: https://blog.golang.org/generate

[3]

Command vet: https://golang.org/cmd/vet/

相關焦點

  • 【基礎篇】配置編輯工具GoLand
    目前我使用的是 GoLand。goland配置環境配置打開goland設置根據自己的環境需要,在Go菜單下,來依次配置GOROOT,GOPATH。GOPATH:go install/go get和go的工具等會用到GOPATH環境變量。其作用:存放sdk以外的第三方類庫;自己收藏的可復用的代碼。
  • golang開發工具安裝
    一、開發環境IDE安裝工欲善其事,必先利其器這裡推薦兩款golang開發工具,一個是goland,一個是VSCode;goland
  • Golang 入門 : 打造開發環境
    一般情況下我們會把 go 語言相關的工具安裝在 /usr/local 目錄下,當然你可以選擇其它的目錄。如果我們把 go build 命令換成 go install 命令呢?試試看:執行後當前目錄中的 hello 可執行文件消失了,原來它被安裝到了 ~/go/bin 目錄下:
  • golang 依賴管理之 mod
    ,dep 和 glide 就是其中的佼佼者,到了 go 1.11 官方終於推出了自己的依賴管理工具 mod,並內置在 go 版本中,go mod 使用簡單,功能強大,並且能自動兼容大多數之前的第三方工具,大量優秀的開源庫都已經切換到了 go mod,大有一統江湖之勢一個最大的變化是 golang 的項目終於不再依賴 $GOPATH 目錄了,之前的項目由於
  • golang開發中包的使用
    使用GOPATH時,golang會在以下目錄中搜索包:GOROOT/src:該目錄保存了Go標準庫裡代碼。GOPATH/src:該目錄保存了應用自身的代碼和第三方依賴的代碼。2.export GO111MODULE=off # 關閉golang 11.1 版本以後的模塊功能使用source /etc/profile命令重新加載環境變量3.
  • Golang命令行參數詳解
    Linux內核啟動可執行程序時,會為其分配單獨的虛擬內存空間,加載程序的代碼、數據都內存中,分配堆、棧,並將環境變量、命令行參數以及其他數據保存在棧內存。首先,看一看 Linux 系統如何將命令行參數傳遞給可執行程序。將「代碼清單-C命令行參數」中的代碼編譯之後,在可執行程序的入口(_start)處設置斷點,查看參數。
  • golang多版本管理
    golang的版本迭代很快,很多時候我們的開發環境是穩定版本,但是新出了golang的版本,我們又想實驗下新特性
  • 一天增長几千星星的 Go 項目:GitHub 的(CLI)命令行工具
    幾天時間增長到 5700+ 星星,還在快速增長中。GitHub 愛好者一定要試試。簡介 GitHub 官方發布命令行工具(Beta)測試版,官方表示,GitHub CLI 提供了一種簡單無縫的 GitHub 使用方法。
  • GitHub CLI 命令行工具使用
    GitHub 被巨軟收購以後推出了一系列非常好用的開發者工具,比如前面我們使用過的 CI/CD 工具 GitHub Actions、包管理工具
  • Go命令行庫Cobra的使用
    使用安裝cobra使用Cobra很簡單。首先,使用go get安裝最新版本go get github.com/spf13/cobra/cobra由於各種問題,國內使用 go get 安裝 golang 官方包可能會失敗。
  • Golang 性能分析工具簡要介紹
    /goroutine-test使用 pprof 工具打開第一次,並退出,再次打開,然後退出 pprof, 退出測試程序go tool pprof xxx/goroutine-test http://localhost:8080/debug/pprof/goroutine兩次結果會默認存儲到 $home/pprof 目錄中(如果設置了 PPROF_TMPDIR
  • Golang 入門 : 配置代理
    這不是一個小問題,因為你的工作會被打斷,即便你使用各種神通解決了問題,很可能這時你的線程已經切換到其他的事情上了(痛恨思路被打斷!)。所以最好是一開始我們就重視這個問題,並一勞永逸的解決它。當我們使用 go get、go install、go mod 等命令時,類似於 golang.org/x/... 的包會是無法下載的。
  • 在命令行中使用 DuckDuckGo 搜索
    編譯自 | http://www.omgubuntu.co.uk/2017/11/duck-duck-go-terminal-app  作者 | Joey Sneddon 譯者 | yixunx此前我們介紹了如何在命令行中使用
  • Goland2020.1IDE中文激活免費破解版
    jetbrains goland 2020.1,這是專為Go開發人員構建的跨平臺 IDE 工具,擁有強大的內置工具可輕鬆幫助您運行和調試應用程式
  • 使用 Typescript 開發 Nodejs 命令行工具
    為何使用TypeScript首先,對於編寫類庫或者工具而言,使用 TypeScript 的最大好處就是其提供了類型機制,可以避免我們犯一些低級錯誤。其次,配合編輯器(如 VS Code),TypeScript 能提供強大的代碼提示功能,我們不需要記憶很多API的具體使用,在編寫代碼時編輯器會自動進行提示。比如引入了 http 之後,輸入 http.
  • golang mod 入門
    go modules 是 golang 1.11 新加的特性。現在1.12 已經發布了,是時候用起來了。Modules官方定義為:模塊是相關Go包的集合。modules是原始碼交換和版本控制的單元。 go命令直接支持使用modules,包括記錄和解析對其他模塊的依賴性。modules替換舊的基於GOPATH的方法來指定在給定構建中使用哪些源文件。
  • 使用dlv調試遠端pod中的go程序
    delve簡稱dlv,是一個go程序的debug工具,項目地址:https://github.com/go-delve/delve,使用它可以對go 程序進行一系列的debug操作,同時,可以配合goland的remote
  • 命令行版 HTTP 工具集,自動化檢查網站狀態
    自動化檢測,離不開自動化的工具,今天來為大家分享一款命令行版的 HTTP 工具集 httpx,項目地址:https://github.com/projectdiscovery/httpx該工具使用 go 語言編寫,安裝方式也比較簡單,需要提前安裝 go 環境,安裝完成之後需要換成國內的代理,否則安裝的時候,會出現連接超時的問題,安裝命令如下:
  • 創新推出 | Serverless 場景排查問題利器:函數實例命令行操作
    讓開發者們無負擔地使用並信任 Serverless,是我們一直追求的目標。全託管的初衷是為了減小開發者的使用和運維複雜度,但這一定程度上削減了用戶對自身服務的控制權力。比如在很多場景中,用戶會想知道,如何能夠掌握自己應用的實際運行情況?應用出現問題時如何能快速確認是自身問題還是雲平臺問題?如果是雲平臺的問題,如何能快速恢復服務,及時止損?
  • goland2020.3安裝破解版激活教程附補丁 無限重置插件
    本文提供一種全新的方法:即通過重置時間的插件來對goland進行無限時間重置,這樣每次啟動軟體都會有30天的試用期(即永久破解),對用戶來說完全是自動的,不用再去操心激活碼、安裝參數無效的問題,試用也是跟正式是一樣的功能,不會有使用上的限制,大家放心!所以僅看本文一篇即可!