當我使用如下所示的有效全局變量時,我的錯誤驗證會以某種方式重復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 關注
- 177 瀏覽
添加回答
舉報
0/150
提交
取消