今天在使用VSCode編寫golang代碼時,定義一個struct,擴展幾個方法,如下:
package storage import ( "fmt" "github.com/zsy619/gcommon" ) //ChunkFooter 塊Footer type ChunkFooter struct { ChunkDataTotalSize int } //NewChunkFooter 創建一個ChunkFooter func NewChunkFooter(chunkDataTotalSize int) *ChunkFooter { var result = new(ChunkFooter) result.ChunkDataTotalSize = chunkDataTotalSize return result } //ToString ChunkFooter轉換為String func (cf *ChunkFooter) ToString() string { return fmt.Sprintf("[ChunkDataTotalSize:%d]", cf.ChunkDataTotalSize) } //AsByteArray 轉換成byte數組 func (nf *ChunkFooter) AsByteArray() []byte { //var result [chunkFooterSize]byte buffer := gcommon.IntToFixedLengthBytes(nf.ChunkDataTotalSize, ChunkFooterSize) return buffer }
請注意函數ToString與AsByteArray中的*ChunkFooter參數,一個是cf,一個nf,提示以下警告:
意思是將nf更改為cf,也就是struct擴展函數中對應對象的命名應該已第一個函數的命名為基準。
可參考參官方指南Effective Golang和Golang Code Review Comments進行整理,力圖與官方及社區編碼風格保持一致。
將函數ToString修改成如下:
//ToString ChunkFooter轉換為String func (this *ChunkFooter) ToString() string { return fmt.Sprintf("[ChunkDataTotalSize:%d]", this.ChunkDataTotalSize) }
提示以下警告信息:
要排除使用me、this、self這些命名??筛鶕olang官網的命名規則,并結合本公司要求,進行統一命名。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。