我正在玩Dart,并想出了以下代码
List<String> lst = new List<String>();
main()
{
lst.add("hello");
lst.where((String str) {
if(str=="hello"){
print("Found");
}
});
}
在调试时,我注意到它没有进入where语句并打印“ Found”。我做错什么了吗?
答案 0 :(得分:2)
var filteredList = lst.where((String str) {
if(str=="hello"){
print("Found");
return true;
}
return false;
});
print(filteredList);
where()
应返回true
或false
,以表明该项目是否满足条件
创建并返回一个新的可迭代对象,它不会修改原始集合
是惰性的,这意味着在使用结果之前不会执行它。 toList()
是要求结果具体化并在每个项目上执行where条件的操作之一(许多收集方法是惰性的)。