我试图将数据从服务器延迟加载到Map中。
因为这个原因,我想添加功能到地图,这样当一个关键不存在,一个调用完成得到值。Dart扩展Map以方便延迟加载
我想这是什么:
class LazyMap extends Map {
// use .length for now. When this works, go use xhr
operator [](key) => LazyMap.putIfAbsent(key,() => key.length);
}
LazyMap test = new LazyMap();
main() {
print(test.containsKey('hallo')); // false
// I prefer to use this terse syntax and not have to use putIfAbsent
// every time I need something from my map
print(test['hello']); // 5
print(test.containsKey('hallo')); // true
}
这就提出了一个错误,指出“无法解析隐式super调用构造地图”,这是神秘的对我。
这是我第一次尝试延伸任何东西,所以我可能会做些愚蠢的事情。 任何建议做得更好,或者可能告诉我,我正在使用一个不好的做法,将不胜感激。
我已经看过这个答案:How do I extend a List in Dart,但这是关于扩展List,而不是Map。我找过一个MapBase但找不到一个。
我已经看过这个答案:I want to add my own methods to a few Dart Classes,但这似乎是一个非常古老的答案,没有真正的解决方案。
亲切的问候, 亨德里克·扬
嗨法里斯。您发布的链接不起作用。它指向你自己的Gmail收件箱,这当然不适合我。你能编辑链接吗?除此之外,这是一个非常有用的答案。我本来希望听到其他情况,但我必须与实施似乎相抗衡。 –
@HendrikJan编辑。 –