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

Golang 向别处定义的结构添加函数

Golang 向别处定义的结构添加函数

Go
慕姐8265434 2021-10-18 09:56:15
我想在sql.Rowstruct上创建一个函数,将一行扫描到我的 struct 中ErrorModel。这就是我正在做的:func (row *sql.Row) ScanErrorModel(mod *model.ErrorModel, err error) {    err = row.Scan(&mod.MessageId, &mod.ServiceName, &mod.EventName,      &mod.Hostname, &mod.Message, &mod.CriticalRate, &mod.Extra, &mod.Timestamp)    return}func (dao *ErrorsDAO) Fetch(id string) (mod *model.ErrorModel, err error) {    row := dao.DB.QueryRow("select * from errors where message_id=$1", id)     return row.ScanErrorModel()}但我在这里收到编译器错误:row.ScanErrorModel undefined (type *sql.Row has no field or method ScanErrorModel)是否不可能将一个函数添加到一个像这样在其他地方定义的结构上?还是我只是犯了一个语法错误?
查看完整描述

1 回答

?
芜湖不芜

TA贡献1796条经验 获得超7个赞

我想在sql.Rowstruct上创建一个函数,将一行扫描到我的 struct 中ErrorModel。这就是我正在做的:


func (row *sql.Row) ScanErrorModel(mod *model.ErrorModel, err error) {

    err = row.Scan(&mod.MessageId, &mod.ServiceName, &mod.EventName,

      &mod.Hostname, &mod.Message, &mod.CriticalRate, &mod.Extra, &mod.Timestamp)

    return

}


func (dao *ErrorsDAO) Fetch(id string) (mod *model.ErrorModel, err error) {

    row := dao.DB.QueryRow("select * from errors where message_id=$1", id) 

    return row.ScanErrorModel()

}

但我在这里收到编译器错误:


row.ScanErrorModel undefined (type *sql.Row has no field or method ScanErrorModel)

是否不可能将一个函数添加到一个像这样在其他地方定义的结构上?还是我只是犯了一个语法错误?


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

添加回答

举报

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