向指针类型的Struct属性添加方法



我有这样一个结构体:

type AppContext struct {
    DB                *db.DB
    Properties        *db.Col
}

*db.Col类型的Properties是Tiedot Collection

我遇到的问题是,对于我的缓冲系统,我希望能够获取集合的名称。奇怪的是,库的默认部署不能这样做。

当我像这样实例化AppContext时:

App = AppContext{}

. .然后输入:

App.DB.Create("Properties")
App.Properties = App.DB.Use("Properties")

我想添加一个实例方法,但它不允许我:

func (dbCol App.Properties) ColName() string {
    return "Properties"
}

你知道我怎么才能做到这一点,或者用更聪明的方式扩展Tiedot吗?

我不认为这种扩展在Go中是可能的。然而,我确信这个问题可以用其他方式解决。例如,您可以创建保存集合及其名称的结构:

type Collection struct {
  Col *tiedot.Col
  Name string
}

并初始化

App.Properties = Collection{App.DB.Use("Properties"), "Properties"}

最新更新