golang struct擴展函數參數命名警告


    今天在使用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,提示以下警告:

image

   意思是將nf更改為cf,也就是struct擴展函數中對應對象的命名應該已第一個函數的命名為基准。

   可參考參官方指南Effective GolangGolang Code Review Comments進行整理,力圖與官方及社區編碼風格保持一致。

   將函數ToString修改成如下:

//ToString ChunkFooter轉換為String
func (this *ChunkFooter) ToString() string {
    return fmt.Sprintf("[ChunkDataTotalSize:%d]", this.ChunkDataTotalSize)
}

   提示以下警告信息:

image

   要排除使用me、this、self這些命名。可根據golang官網的命名規則,並結合本公司要求,進行統一命名。


免責聲明!

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



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