當(dāng)我使用如下所示的有效全局變量時(shí),我的錯(cuò)誤驗(yàn)證會以某種方式重復(fù)var ( valid validation.Validation)func validationInit() validation.Validation { valid := validation.Validation{} return valid}但是當(dāng)我轉(zhuǎn)到valid := validation.Validation{}我的模型函數(shù)時(shí),它可以正常工作,沒有任何重復(fù)項(xiàng),如下所示:func AddClub(name string) (id int64, error []*validation.ValidationError) { club := Club{Name: name} valid := validation.Validation{}我如何不能在每個(gè)函數(shù)中復(fù)制這個(gè)有效值,而是在不增加和復(fù)制結(jié)果的情況下重用變量?
1 回答

慕的地10843
TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超8個(gè)贊
由于您的validationInit()func 返回一個(gè)validation.Validation 值而不是指向它的指針,因此您不能從多個(gè)函數(shù)或同一函數(shù)的多次調(diào)用中返回相同的全局變量。
如果你真的想要這個(gè),你必須返回一個(gè)指向全局變量的指針,否則將返回全局變量值的副本。
例子:
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的函數(shù)同時(shí)返回2 個(gè)不同的值。
我建議您忽略全局變量,validation.Validation每次需要時(shí)只創(chuàng)建一個(gè)新值并返回該新值(通過值或指向它的指針)。
- 1 回答
- 0 關(guān)注
- 175 瀏覽
添加回答
舉報(bào)
0/150
提交
取消