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

错误验证增加和重复

错误验证增加和重复

Go
大话西游666 2021-09-10 20:43:39
当我使用如下所示的有效全局变量时,我的错误验证会以某种方式重复var (    valid validation.Validation)func validationInit() validation.Validation {    valid := validation.Validation{}    return valid}但是当我转到valid := validation.Validation{}我的模型函数时,它可以正常工作,没有任何重复项,如下所示:func AddClub(name string) (id int64, error []*validation.ValidationError) {    club := Club{Name: name}    valid := validation.Validation{}我如何不能在每个函数中复制这个有效值,而是在不增加和复制结果的情况下重用变量?
查看完整描述

1 回答

?
慕的地10843

TA贡献1785条经验 获得超8个赞

由于您的validationInit()func 返回一个validation.Validation 值而不是指向它的指针,因此您不能从多个函数或同一函数的多次调用中返回相同的全局变量。


如果你真的想要这个,你必须返回一个指向全局变量的指针,否则将返回全局变量值的副本。


例子:


var valid validation.Validation


func someFunc() *valid.Validation {

    // You can access the global variable valid here, you can also modify it

    return &valid

}

但这很可能不是您想要的。这将不允许您validation.Validation的函数同时返回2 个不同的值。


我建议您忽略全局变量,validation.Validation每次需要时只创建一个新值并返回该新值(通过值或指向它的指针)。


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

添加回答

举报

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