将方法添加到指针类型的结构属性

时间:2015-08-02 16:42:09

标签: go tiedot

我有这个结构:

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

*db.ColTiedot集合。

我遇到的问题是,对于我的缓冲系统,我希望能够获取该集合的名称。奇怪的是,库的默认部署无法实现。

当我像这样实例化AppContext时:

App = AppContext{}

..然后再做:

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

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

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

我知道如何才能实现这一目标,或者以更智能的方式扩展Tiedot?

1 个答案:

答案 0 :(得分:1)

我认为Go中没有这样的扩展。但是,我确信问题可以通过其他方式解决。例如,您可以创建包含集合及其名称的结构:

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

并初始化

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