登录
首页 >  Golang >  Go问答

找不到目标且错误指标仍为零

来源:stackoverflow

时间:2024-02-22 08:00:25 483浏览 收藏

哈喽!今天心血来潮给大家带来了《找不到目标且错误指标仍为零》,想必大家应该对Golang都不陌生吧,那么阅读本文就都不会很困难,以下内容主要涉及到,若是你正在学习Golang,千万别错过这篇文章~希望能帮助到你!

问题内容

我正在尝试通过令牌选择一个实体。

var event models.Event
err := p.db.Preload("Groups.Participants").Find(&event, "token = ?", token).Error
return event, err

但是如果我传递一个空的 token,例如。 “”或另一个不存在的标记。我没有收到错误,我只是收到了一个未填充的事件。我可以检查 event.id == 0 但我觉得这有点奇怪。我有点惊讶的是,即使没有找到实体,err 仍然为零。

我是不是做错了什么?有没有更好的方法来处理上述问题?


正确答案


如果未找到记录,Find 不会导致错误。这在 single object retrieval 的文档中作为旁注提到:

如果您想避免 ErrRecordNotFound 错误,您可以使用 Finddb.Limit(1).Find(&user) 一样,Find 方法接受 struct 和 切片数据

如果您必须使用 Find,那么您必须自己检查无记录,方法是在使用它检索单个对象时检查零值,或者在使用它检索多个对象时检查切片长度是否为零。但是,如果您仅检索单个对象,那么我建议您使用该链接中记录的方法之一,即 FirstTakeLast,如文档所示,这些方法确实会导致 ErrRecordNotFound 错误没有找到满足查询的记录。

终于介绍完啦!小伙伴们,这篇关于《找不到目标且错误指标仍为零》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>