今天在使用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這些命名。可根據golang官網的命名規則,并結合本公司要求,進行統一命名。
您可能感興趣的文章:- golang中strconv.ParseInt函數用法示例
- golang模板template自定義函數用法示例
- 深入解析golang編程中函數的用法
- Golang的os標準庫中常用函數的整理介紹
- Golang記錄、計算函數執行耗時、運行時間的一個簡單方法
- Golang學習筆記(五):函數
- golang 函數以及函數和方法的詳解及區別