今天在使用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官网的命名规则,并结合本公司要求,进行统一命名。
在针对PHPCMS V9做二次开发的时候,您可以自定义一些全局函数且不影响以后官方升级 您自定义的文件请放置于该文件中 phpcms\libs\functions\extention.func.php或者以.func.php格式命名,放置于如下目录中 phpcms\libs\functions\autoload
问题内容: 有没有办法保留解构函数参数的名称?即,根对象的名称? 在ES5中,我可以这样做(使用继承作为隐喻来说明这一点): 我正在使用同一个对象来保存多个配置参数。某些参数由父类使用,而某些参数由子类使用。 有没有办法用ES6中的结构化函数参数来做到这一点? 还是我需要提取所有选项,以便可以将它们分别传递给? 问题答案: 我本人在太多地方都有“选项”论据。我会选择1行额外的代码。在此示例中不值得
我正在用Java构建一个库管理应用程序。 我有一个名为 的抽象类。它有一个称为 的抽象方法。 有一个名为< code>Newspaper的子类,它当然实现了< code>equals,其签名与< code>equals在< code>Material中的签名完全相同: Java无法解析< code > elementoacomparer 的任何方法。它们都存在于< code >报纸中,该报纸确实扩
函数参数的默认值 基本用法 在ES6之前,不能直接为函数的参数指定默认值,只能采用变通的方法。 function log(x, y) { y = y || 'World'; console.log(x, y); } log('Hello') // Hello World log('Hello', 'China') // Hello China log('Hello', '') // He
我试图在androidkotlin项目中实现库,但在编译时捕捉到了这个警告。我不知道如何解决这个问题。 警告:有多个好的构造函数,房间将选择无参数构造函数。您可以使用@Ignore注释来消除不需要的构造函数。 自动生成类 Kotlin数据类
在Scala中,如何使用trait中定义的私有构造函数参数扩展类中的trait? 上面的类给出了一个错误: 类子级需要是抽象的,因为方法名位于类型的trait父级中⇒ 未定义字符串。 当然-我当然可以: 使类抽象, 在构造函数中定义它而不使用私有,例如。 使父类成为而不是trait 但是,使用上述实现,在扩展trait时,我不可能拥有私有构造函数参数吗?注意,我希望变量是私有的,这样我就不能执行c