为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Golang Beego 中删除重复的 ORM 实例化

如何在 Golang Beego 中删除重复的 ORM 实例化

Go
互换的青春 2021-09-10 20:40:40
在 Golang 应用模型中我有以下:func AddClub(name string) int64 {    o := orm.NewOrm()    club := Club{Name: name}    id, err := o.Insert(&club)    if err != nil {        fmt.Printf("Id: %s, Error: %s", id, err)    }    return id}然后在下面:func GetAllClubs() []*Club {    o := orm.NewOrm()    var clubs []*Club    num, err := o.QueryTable("clubs").All(&clubs)    if err != nil {        fmt.Printf("Returned Rows Num: %s, %s", num, err)    }    return clubs}我想删除重复的o := orm.NewOrm()实例化。我该怎么做呢?我试图把它作为init()func 的一部分,如下所示:func init() {  o := orm.NewOrm()}但是我在控制台中收到 undefined o 错误
查看完整描述

1 回答

?
阿晨1998

TA贡献2037条经验 获得超6个赞

如果你想定义一个可用于整个包的变量.. 你需要在包级别声明它(如果你不打算注入它)。也就是说,在任何功能之外。


您也不能:=为此使用速记初始化 - 它必须是明确的。


因此它必须是这样的:


var o orm.Ormer


func init() {

    o = orm.NewOrm()

}

请注意,它是在函数外部声明的,并且不使用速记初始化和赋值运算符:=。


查看完整回答
反对 回复 2021-09-10
  • 1 回答
  • 0 关注
  • 219 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信