如何根据属性更改在golang中调用函数?
示例代码: 在上面的代码中,我确保不会不必要地调用LocateBasket函数。在GetBasketCall期间只调用一次。但如果有任何属性更改(例如数量更改为30),那么我希望确保当用户调用GetBasket时,它也在内部调用LocateBasket函数如何根据属性更改在golang中调用函数?,go,Go,示例代码: 在上面的代码中,我确保不会不必要地调用LocateBasket函数。在GetBasketCall期间只调用一次。但如果有任何属性更改(例如数量更改为30),那么我希望确保当用户调用GetBasket时,它也在内部调用LocateBasket函数 在我的示例中,我只有一个函数,但是如果有多个属性需要在调用它们相应的Getter函数时重新计算(基于属性更改),那么最好的方法是什么 编写一个setter方法,并立即定位basket或将其标记为GetBasket执行以下操作: func (b
在我的示例中,我只有一个函数,但是如果有多个属性需要在调用它们相应的Getter函数时重新计算(基于属性更改),那么最好的方法是什么 编写一个setter方法,并立即定位basket或将其标记为GetBasket执行以下操作:
func (ball *Ball) SetQuantity(n int){
ball.Quantity = n
// ball.LocateBasket(ball)
ball.dirty = true
}
func (ball *Ball) GetBasket() BasketType {
if ball.dirty{
ball.LocateBasket(ball)
ball.dirty = false
return ball.basket
}
编写一个setter方法,并立即定位basket或将其标记为GetBasket执行以下操作:
func (ball *Ball) SetQuantity(n int){
ball.Quantity = n
// ball.LocateBasket(ball)
ball.dirty = true
}
func (ball *Ball) GetBasket() BasketType {
if ball.dirty{
ball.LocateBasket(ball)
ball.dirty = false
return ball.basket
}
谢谢你的建议。但是这种方法的问题是,如果有多个参数,例如明天如果我们有一个新函数“GetBasketColor()”,它也需要根据属性数量进行更改,那么我也必须在另一个函数中实现相同的逻辑。它变得有点多余了。此外,如果我在一个Getfunction中设置ball.dirty=true,其他Getfunction可能无法基于更改的quantity属性进行处理。谢谢您的建议。但是这种方法的问题是,如果有多个参数,例如明天如果我们有一个新函数“GetBasketColor()”,它也需要根据属性数量进行更改,那么我也必须在另一个函数中实现相同的逻辑。它变得有点多余了。此外,如果我在一个Getfunction中设置ball.dirty=true,那么其他Getfunction可能无法基于更改的quantity属性进行处理。