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,提示以下警告:

意思是将nf更改为cf,也就是struct扩展函数中对应对象的命名应该已第一个函数的命名为基准。

可参考参官方指南Effective GolangGolang Code Review Comments进行整理,力图与官方及社区编码风格保持一致。

将函数ToString修改成如下:

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

提示以下警告信息:

要排除使用me、this、self这些命名。可根据golang官网的命名规则,并结合本公司要求,进行统一命名。

时间: 2024-12-19 10:49:39

golang struct扩展函数参数命名警告的相关文章

golang获取命令行参数

部署golang项目时难免要通过命令行来设置一些参数,那么在golang中如何操作命令行参数呢?可以使用os库和flag库. 1.golang os库获取命令行参数 os可以通过变量Args来获取命令参数,os.Args返回一个字符串数组,其中第一个参数就是执行文件本身. package main import ( "fmt" "os" ) func main() { fmt.Println(os.Args) } 编译执行后执行 $ ./cmd -user=&quo

swift学习之函数的参数命名

前面文章我说过,给一个函数起名字最好让人通过名字就大概知道你这个函数的大概功能,而不是让人读完内部代码才知道你的函数是干嘛的,大家都是程序员,你不想下个人接你的代码时问候你XXX啥的吧,这也和规范有一定联系的,这次就说说函数的参数命名把 其实函数参数是有外部命名和本地命名的,外部命名就是针对外部调用函数时所写的名字,本地命名就是指在函数块内用来访问使用的,在我个人理解也是一种补充,这也是我个人更喜欢swift的原因,相当于把长的命名拆分了,外部调用也许你还模棱两可,但是当你看到该函数,发现还有本

Golang的不定参数

在很多语言中都提供了不定参数和函数重载以及函数式语言中得闭包来提高函数的灵活性.如果使用过fmt包里的函数,那么你就已经接触到了Golang的不定参数了.那么如何定义一个自己的不定参数的函数呢? 一.函数定义 首先来看如何定义一个不定参数的函数: func YourFun(v... interface{}){ } 该函数定义,定义了一个接受任何数目任何类型参数的函数.这里特殊的语法是三个点"...",在一个变量后面加上三个点后,表示从该处开始接受不定参数,不同于python,golan

了解golang的不定参数(... parameters),这一篇就够了

在实际开发中,总有一些函数的参数个数是在编码过程中无法确定的,比如我们最常用的fmt.Printf和fmt.Println: fmt.Printf("一共有%v行%v列\n", rows, cols) fmt.Println("共计大小:", size) 当你需要实现类似的接口时,就需要我们的不定参数出场了. golang的不定参数 顾名思义,不定参数就是一个占位符,你可以将1个或者多个参数赋值给这个占位符,这样不管实际参数的数量是多少,都能交给不定参数来处理,我们

GoLang struct的tag

GoLang获取struct的tag内容,  这是tag,可以被reflect API访问:beego的ORM中也通过tag来定义参数的. 获取tag的内容是利用反射包来实现的.示例代码能清楚的看懂! package main import ( "fmt" "reflect") type Job struct { AlarmStatus *string `json:"alarm_status" name:"alarm_status&qu

pandas 对象中 to_pickle 方法参数命名问题,不能用frame

这句话一直报错,经过反复排查,是命名问题,to_pickle() 参数不能是 frame,换一个名字就可以了 frame.to_pickle('examples\local_frame_pickle') 这样就可以了.至于命名出错的原因,还未知. 原文地址:https://www.cnblogs.com/rougan/p/10088638.html

golang中不定参数与数组切片的区别

package main import "fmt" func main() { myfunc1(88, 42, 12, 56) //传递不定数量的参数 myfunc2([]int{88, 42, 12, 56}) //传递一个数组切片 } func myfunc1(args ...int) { //接受不定数量的参数,这些参数的类型全部是int for _, arg := range args { fmt.Println(arg) } } func myfunc2(args []int

golang struct转map

struct转map package main import ( "fmt" "reflect" "time" ) type User struct { Id int64 Username string Password string Logintime time.Time } func Struct2Map(obj interface{}) map[string]interface{} { t := reflect.TypeOf(obj) v

golang 中可变参数的个数

package main import "fmt" func Greeting(prefix string, who ... string) { fmt.Println(prefix) //接收到who是一个数组,可以用for遍历. for _, name := range who { fmt.Println(name) } } func main() { Greeting("Hello:", "tom", "mike", &