我不喜欢使用索引数组,除了我觉得它看起来很难看.是否有一种与匿名函数相加的简洁方法?是否可以在不使用任何外部变量的情况下完成?
假设我有一个列表,如:
var letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'];
Run Code Online (Sandbox Code Playgroud)
我想列出每个包含2个元素的列表:
var chunks = [['a', 'b'], ['c', 'd'], ['e', 'f'], ['g', 'h']];
Run Code Online (Sandbox Code Playgroud)
用Dart做这件事的好方法是什么?
如何为现有类型指定新名称?
假设我想给出一个List<String>名字Directives然后能够说出来directives = new Directives().
是否可以使用我自己的特定列表扩展通用列表.就像是:
class Tweets<Tweet> extends List<T>
Run Code Online (Sandbox Code Playgroud)
如果我想用自己的构造函数构造,构造函数将如何显示:
Datasource datasource = new Datasource('http://search.twitter.com/search.json');
Tweets tweets = new Tweets<Tweet>(datasource);
Run Code Online (Sandbox Code Playgroud)
那么如何调用父构造函数,因为这不是在扩展类中完成的?
Dart 2.6引入了一种新的语言功能,称为“ 静态扩展成员 ”。
但是,我不太了解如何使用它。
我想轻松获得childCounta Row或Column,即使用row.childCount代替row.children.length:
void main() {
final row = Row(children: const [Text('one'), Text('two')]),
column = Column(children: const [Text('one'), Text('two'), Text('three')]);
print(row.childCount); // Should print "2".
print(column.childCount); // Should print "3".
}
Run Code Online (Sandbox Code Playgroud)
我尝试执行以下操作,但这是语法错误:
Row.childCount() => this.children.length;
Column.childCount() => this.children.length;
Run Code Online (Sandbox Code Playgroud) 我正在尝试将数据从服务器延迟加载到Map中。
因此,我想向Map添加功能,以便在不存在键时进行调用以获取value。
我试过的是:
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
}
Run Code Online (Sandbox Code Playgroud)
这引起了一个错误,指出“无法为隐式超级调用解析构造函数映射”,这对我来说是一个神秘的问题。
这是我第一次尝试扩展任何内容,因此我可能会做一些愚蠢的事情。任何关于做得更好的建议,或者可能告诉我我使用的是不好的做法,将不胜感激。
我研究了这个答案:如何在Dart中扩展List,但这是关于扩展List而不是Map的。我一直在寻找MapBase,但是找不到。
我已经研究了这个答案:我想将自己的方法添加到一些Dart类中,但这似乎是一个很老的答案,没有真正的解决方案。
亲切的问候,亨德里克·扬
这个问题是关于Dart语言的.我想要一个只是List但具有一些额外功能的类.
例如,我有一个名为Model的类:
class Model{
String name;
int type;
Model(this.name, this.type);
}
Run Code Online (Sandbox Code Playgroud)
我知道Model的类型只能取四个值:从0到3.我希望有一个方法,它可以给我一个指定类型的模型列表,例如List<Model> modelCollection.getByType(int type);.我打算在该类中有四个"隐藏"模型列表(按类型分组).因此,我需要覆盖List元素的添加和删除,以使隐藏列表保持最新.
我怎样才能尽可能简单地实现这一点?
PS我知道这很简单,但我对Object继承不太熟悉并且找不到合适的例子.PPS我也检查了这个,但不知道它是否过时,并没有抓住这个想法.