如何从另一个函数调用dbmap.Insert(interface {})?

时间:2019-04-03 13:31:30

标签: go gorp

我有一堆非常相似的结构(在示例中为A和B),我想在某个函数(在示例中为--reload)中处理其实例,然后将其插入我的数据库中。我以为可以用空接口来解决这个问题,但是当我收到错误消息时,这似乎不是解决方案:

pserve production.ini

我试图创建一些最小但可执行的示例:

f()

什么是正确的方法?在C ++中,我只是使用模板;)

1 个答案:

答案 0 :(得分:1)

如果您要像f(&a)这样呼叫func。您应该在func f内部调用dbmap.Insert(i),因为您的值已经是一个指针。因此,您的func看起来像

func f(i interface{}) {
    fmt.Printf("i: %v %T\n", i, i)

    err := dbmap.Insert(i)
    checkErr(err, "Insert i")
}