【发布时间】:2014-01-31 14:29:39
【问题描述】:
我正在尝试将数据从服务器延迟加载到地图中。
出于这个原因,我想向 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
}
这会引发一个错误,说明“无法解析构造函数映射以进行隐式超级调用”,这对我来说很神秘。
这是我第一次尝试扩展任何东西,所以我可能会做一些愚蠢的事情。 任何关于做得更好的建议,或者可能告诉我我正在使用一种不好的做法,我们将不胜感激。
我已经研究过这个答案:How do I extend a List in Dart,但这是关于扩展列表,而不是地图。我一直在寻找 MapBase,但找不到。
我研究了这个答案:I want to add my own methods to a few Dart Classes,但这似乎是一个非常古老的答案,没有真正的解决方案。
亲切的问候, 亨德里克·扬
【问题讨论】: