假设我有一个昂贵的功能
func veryExpensiveFunction(int) int
并且对于相同的数字,此函数被调用很多。
有没有一种好方法可以允许这个函数存储以前的结果,以便在再次调用该函数时使用,甚至可能对非常消耗的函数2重用?
显然,可以添加一个参数
func veryExpensiveFunctionCached(p int, cache map[int]int) int {
if val, ok := cache[p]; ok {
return val
}
result := veryExpensiveFunction(p)
cache[p] = result
return result
}
但是现在我必须在某个地方创建缓存,在那里我不关心它。如果可能的话,我宁愿将其作为“静态函数成员”。
在 go 中模拟静态成员缓存的好方法是什么?
慕丝7291255
慕雪6442864
呼啦一阵风
相关分类