Golang结构建构的一般性

我有一个其他两个对象实现的结构.在这种情况下,键入A和B repo.有一些初始化代码,在这里表示为省略号.初始化代码在两个构造函数之间完全重复,并且不是什么大问题,而我只有两个dbRepo,但是当我创建更多时,我会更担心不好的做法.有没有办法用界面来概括这个?

type dbRepo struct {
    foo string
    bar string
}

type typeARepo dbRepo
type typeBRepo dbRepo

func newTypeARepo(foo,bar string) {
    ...
}

func newTypeBRepo(foo,bar string) {
    ...
}

解决方法

我个人在Go中观察到的这种做法(也是有效的Go或者Go教程入门中推荐的那种做法)就是定义一个NewdbRepo函数并将其用于所有瞬时.它的实现看起来像;

func NewdbRepo(f,b string) *dbRepo {
    return &dbRepo{ foo:f,bar:b}
}

您无法像在大多数C语言中那样实际定义构造函数,因此您只需提供一个包作用域的方法来为您构建.此外,如果您没有使用复合文字(我在NewdbRepo实现中使用的启动样式),那么您可能会发现它足够简洁以满足您的需求.

相关文章

类型转换 1、int转string 2、string转int 3、string转float ...
package main import s "strings" import...
类使用:实现一个people中有一个sayhi的方法调用功能,代码如...
html代码: beego代码:
1、读取文件信息: 2、读取文件夹下的所有文件: 3、写入文件...
配置环境:Windows7+推荐IDE:LiteIDEGO下载地址:http:...