GO:格式化代碼

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

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 源文件。spa

gofmt 也能夠經過在參數 -r 後面加入用雙引號括起來的替換規則實現代碼的簡單重構,規則的格式:<原始內容> -> <替換內容>命令行

實例:code

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

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

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

上面的代碼會將源文件中多餘的 len(a) 去掉。( 譯者注:瞭解 slice 以後就明白這爲何是多餘的了 )get

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

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

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

相關文章
相關標籤/搜索