Go函数封装参数类型限制编译不过

zflinux21 · · 696 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

想请教一下问题,我想对beego的orm再封装一层,方便使用,可参数类型限制编译不过,不知道怎么改了。 ``` 举例说明,现有两个数据模型: // 模型1: type Post struct { Id int Title string Content string Status int } // 获取数据集 var posts []Post orm.NewOrm().QueryTable("post").Filter("Status", 1).All(&posts) // 模型2: type News struct { Id int Title string Content string Status int } // 获取数据集合 var news []News orm.NewOrm().QueryTable("post").Filter("Status", 1).All(&news) ``` 想着对orm进行再次封装,以便方便调用, 比如抽象出一个方法: ``` func GetDataList(tableName string, dataList interface{}) (datalist interface{}) { orm.NewOrm().QueryTable(tableName).Filter("Status", 1).All(&datalist) return datalist } ``` 意想中的调用方式是这样: ``` var posts []Post fmt.Println(GetDataList("post", post)) var news []News fmt.Println(GetDataList("news", news)) ``` 可事实发现编译不过~报错信息: ``` wrong object type `*interface {}` for rows scan, need *backend-api/models.post ``` 想问一下在go中这样一般怎么写?

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

696 次点击  ∙  1 赞  
加入收藏 微博
5 回复  |  直到 2020-06-15 10:02:10
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传