我想用元数据注释以非介入方式实现 call 缓存(记忆)。
希望它将像这样工作:
class A{
@Cached
foo(msg) {
return msg;
}
}
void main() {
@Cached
var foo = ()=>"hello";
}
只能使用
dart:mirrors
可以实现吗? 最佳答案
不久前,我写了一篇关于该主题的博客文章。复制到这里太长了,所以这里是链接:
http://dartery.blogspot.com/2012/09/memoizing-functions-in-dart.html
结果是您可以编写高阶的记忆函数,但是由于Dart缺乏灵活的args函数,它们通常受到限制。另外,如果您想将动态编程与递归函数一起使用,则需要在编写代码时牢记备忘录-它需要将自身作为参数,因此您可以传递备忘录版本。
关于dart - 如何实现调用缓存(记忆化),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24049063/