婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > golang一些常用的靜態檢查工具詳解

golang一些常用的靜態檢查工具詳解

熱門標簽:杭州人工智能電銷機器人費用 谷歌美發店地圖標注 地圖區域圖標注后導出 官渡電銷外呼管理系統怎么收費 貴州電話智能外呼系統 赤峰電銷 利用地圖標注位置 江蘇呼叫中心外呼系統有效果嗎 400開頭電話怎樣申請

一、背景

俗話說,工欲善其事,必先利其器。go 作為一個對基礎功能封裝非常好的語言,對編碼體驗,如何更高效地寫出高性能代碼,都是考慮非常好的。因此,如何能夠寫出更美觀、更安全的golang代碼,也是我們需要關注的目標。go 本身也提供了非常多的工具供我們使用。

這里先將所有常用的指令放到這個表格中:

二、gofmt

主要修復代碼格式,比如代碼塊的tab。

2.1 參數說明

-l: 僅打印需要替換的文件名字,不替換文件內容

如下:

-r: 指定替換規則,格式:-s “pattern -> replacement”

-s:顯式指定需要替換的文件

-w:直接修改目標文件,且命令行不打印任何數據

idea 自帶,也可以使用下面的語句強行執行

一般是對工程中變量名字的對齊,比如行開頭統一使用tab

注意:gofmt ≠ 代碼規范,比如它不會管單行是否超過了120個字符

2.2 go fmt

go fmt 是對 gofmt 的簡單封裝,比如一些通用的代碼規范規則,我們直接使用go fmt 就可以直接覆蓋了。效果如下:

當然,和 gofmt 一樣,go fmt 也不能解決代碼本身的邏輯問題。

三、goimports(比gofmt 更常用)

goimports 是gofmt 的升級版,相對gofmt,它不僅可以修復代碼格式,還可以規范import 的格式。
比較規范的import 格式:

import(
 // 標準包
 "log"
 "json"
 ...
 // 內部包
 "mygoproject/model/..."
 ...
 // 第三方包
 "github.com/..."
)

3.1 安裝

go get golang.org/x/tools/cmd/goimports

3.2 goland 配置

3.3 手動格式化代碼/項目

修改某個文件:
goimports -w filename

修改整個目錄下的所有代碼:
goimports -w 目錄名

3.4 擴展:為什么格式規范化推薦用 goimports 而不是 go fmt

總結:goimports 也封裝了gofmt 的功能,而且goimports 會對無用import 刪除,對go 自己的包和第三方包 進行整理,功能更強大。

四、go vet (靜態代碼檢查)

前面看到的 gofmt 和 goimports 都不涉及到代碼邏輯的檢查。那么接下來就是 go vet 大展手腳的地方了

4.1 執行

掃描單個文件:
go vet filename.go

掃描整個項目:
go vet ./…

4.2 可以修復的問題 4.2.1 語法

比如這里我們使用 go routine 的語法有問題,執行 go vet 會提示:function must be invoked in go statement

4.2.2 循環 和 goroutine/defer

還是前面的示例,把括號補充之后,依然會報錯:
loop variable currentFloat captured by func literal

這就是在循環中使用協程帶來的問題了。具體原因可以參考這個問答說明。

循環中使用 go routine 一定要注意參數的傳遞方式。正確的使用方式:

4.2.3 其他語法問題

比如永遠是true/false的表達式,或者是不可到達的代碼等。

五、go module

管理項目依賴
專題介紹

六、附錄-其他參考文章

1、goland 自帶的go 工具

到此這篇關于golang一些常用的靜態檢查工具的文章就介紹到這了,更多相關golang靜態檢查工具內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • golang實現的文件上傳下載小工具
  • golang有用的庫及工具 之 zap.Logger包的使用指南
  • golang的基礎語法和常用開發工具詳解
  • 基于golang如何實現error工具包詳解
  • golang時間處理工具箱now的使用詳解

標簽:保定 武漢 鷹潭 宜春 松原 黔西 河池 泰安

巨人網絡通訊聲明:本文標題《golang一些常用的靜態檢查工具詳解》,本文關鍵詞  golang,一些,常用的,常,用的,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《golang一些常用的靜態檢查工具詳解》相關的同類信息!
  • 本頁收集關于golang一些常用的靜態檢查工具詳解的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 台东县| 玛多县| 阜城县| 孝义市| 沙坪坝区| 河西区| 巴东县| 德州市| 周宁县| 佛冈县| 靖江市| 崇义县| 阿克陶县| 靖州| 雅安市| 通化县| 繁昌县| 龙泉市| 喀什市| 海林市| 冷水江市| 延津县| 老河口市| 广河县| 新竹县| 奎屯市| 普洱| 东明县| 集贤县| 鄂托克前旗| 青海省| 房山区| 新昌县| 山阴县| 石门县| 富宁县| 景东| 册亨县| 宣武区| 万全县| 务川|