当我使用如下所示的有效全局变量时,我的错误验证会以某种方式重复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每次需要时只创建一个新值并返回该新值(通过值或指向它的指针)。
- 1 回答
- 0 关注
- 152 浏览
添加回答
举报
0/150
提交
取消