GO:格式化代碼


http://www.ituring.com.cn/article/39380

Go 開發團隊不想要 Go 語言像許多其它語言那樣總是在為代碼風格而引發無休止的爭論,浪費大量寶貴的開發時間,因此他們制作了一個工具:go fmtgofmt)。這個工具可以將你的源代碼格式化成符合官方統一標准的風格,屬於語法風格層面上的小型重構。遵循統一的代碼風格是 Go 開發中無可撼動的鐵律,因此你必須在編譯或提交版本管理系統之前使用 gofmt 來格式化你的代碼。

盡管這種做法也存在一些爭論,但使用 gofmt 后你不再需要自成一套代碼風格而是和所有人使用相同的規則。這不僅增強了代碼的可讀性,而且在接手外部 Go 項目時,可以更快地了解其代碼的含義。此外,大多數開發工具也都內置了這一功能。

Go 對於代碼的縮進層級方面使用 tab 還是空格並沒有強制規定,一個 tab 可以代表 4 個或 8 個空格。在實際開發中,1 個 tab 應該代表 4 個空格,而在本身的例子當中,每個 tab 代表 8 個空格。至於開發工具方面,一般都是直接使用 tab 而不替換成空格。

在命令行輸入 gofmt –w program.go 會格式化該源文件的代碼然后將格式化后的代碼覆蓋原始內容(如果不加參數 -w 則只會打印格式化后的結果而不重寫文件);gofmt -w *.go 會格式化並重寫所有 Go 源文件;gofmt map1 會格式化並重寫 map1 目錄及其子目錄下的所有 Go 源文件。

gofmt 也可以通過在參數 -r 后面加入用雙引號括起來的替換規則實現代碼的簡單重構,規則的格式:<原始內容> -> <替換內容>

實例:

gofmt -r “(a)-> aw *.go

上面的代碼會將源文件中沒有意義的括號去掉。

gofmt -r a[n:len(a)]-> a[n:]”w *.go

上面的代碼會將源文件中多余的 len(a) 去掉。( 譯者注:了解 slice 之后就明白這為什么是多余的了 )

gofmt r A.Func1(a,b)-> A.Func2(b,a)’w *.go

上面的代碼會將源文件中符合條件的函數的參數調換位置。

如果想要了解有關 gofmt 的更多信息,請訪問該頁面:http://golang.org/cmd/gofmt/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM