今天在使用VSCode編寫golang代碼時(shí),定義一個(gè)struct,擴(kuò)展幾個(gè)方法,如下:
package storage
import (
"fmt"
"github.com/zsy619/gcommon"
)
//ChunkFooter 塊Footer
type ChunkFooter struct {
ChunkDataTotalSize int
}
//NewChunkFooter 創(chuàng)建一個(gè)ChunkFooter
func NewChunkFooter(chunkDataTotalSize int) *ChunkFooter {
var result = new(ChunkFooter)
result.ChunkDataTotalSize = chunkDataTotalSize
return result
}
//ToString ChunkFooter轉(zhuǎn)換為String
func (cf *ChunkFooter) ToString() string {
return fmt.Sprintf("[ChunkDataTotalSize:%d]", cf.ChunkDataTotalSize)
}
//AsByteArray 轉(zhuǎn)換成byte數(shù)組
func (nf *ChunkFooter) AsByteArray() []byte {
//var result [chunkFooterSize]byte
buffer := gcommon.IntToFixedLengthBytes(nf.ChunkDataTotalSize, ChunkFooterSize)
return buffer
}
請(qǐng)注意函數(shù)ToString與AsByteArray中的*ChunkFooter參數(shù),一個(gè)是cf,一個(gè)nf,提示以下警告:
意思是將nf更改為cf,也就是struct擴(kuò)展函數(shù)中對(duì)應(yīng)對(duì)象的命名應(yīng)該已第一個(gè)函數(shù)的命名為基準(zhǔn)。
可參考參官方指南Effective Golang和Golang Code Review Comments進(jìn)行整理,力圖與官方及社區(qū)編碼風(fēng)格保持一致。
將函數(shù)ToString修改成如下:
//ToString ChunkFooter轉(zhuǎn)換為String
func (this *ChunkFooter) ToString() string {
return fmt.Sprintf("[ChunkDataTotalSize:%d]", this.ChunkDataTotalSize)
}
提示以下警告信息:
要排除使用me、this、self這些命名。可根據(jù)golang官網(wǎng)的命名規(guī)則,并結(jié)合本公司要求,進(jìn)行統(tǒng)一命名。
您可能感興趣的文章:- golang中strconv.ParseInt函數(shù)用法示例
- golang模板template自定義函數(shù)用法示例
- 深入解析golang編程中函數(shù)的用法
- Golang的os標(biāo)準(zhǔn)庫(kù)中常用函數(shù)的整理介紹
- Golang記錄、計(jì)算函數(shù)執(zhí)行耗時(shí)、運(yùn)行時(shí)間的一個(gè)簡(jiǎn)單方法
- Golang學(xué)習(xí)筆記(五):函數(shù)
- golang 函數(shù)以及函數(shù)和方法的詳解及區(qū)別