项目地址: https://github.com/ahuigo/gofnext#decorator-cases
类似于 python 的 @functools.cache
cache decorator 菲波那切数列示例:
package main
import "fmt"
import "github.com/ahuigo/gofnext"
func main() {
var fib func(int) int
var fibCached func(int) int
fib = func(x int) int {
fmt.Printf("call arg:%d\n", x)
if x <= 1 {
return x
} else {
return fibCached(x-1) + fibCached(x-2)
}
}
fibCached = gofnext.CacheFn1(fib)
fmt.Println(fibCached(5))
fmt.Println(fibCached(6))
}
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.