我无法理解 Iterable 类然后使用 .map 语法。你能用一种简单的语言来表达吗?
Posted
技术标签:
【中文标题】我无法理解 Iterable 类然后使用 .map 语法。你能用一种简单的语言来表达吗?【英文标题】:I am having trouble understanding the Iterable class then with the .map syntax. can you put this in a simple language? 【发布时间】:2019-12-29 19:10:00 【问题描述】:我知道它会使 ListTiles 走上一条新路线,但我无法理解语法。请问,你能用简单的语言解释一下这里发生了什么吗?
void _pushSaved()
Navigator.of(context).push(
MaterialPageRoute<void>(
builder: (BuildContext context)
final Iterable<ListTile> tiles = _saved.map(
(WordPair pair)
return ListTile(
title: Text(
pair.asPascalCase,
style: _biggerFont,
),
);
,
);
final List<Widget> divided = ListTile.divideTiles(
context: context,
tiles: tiles,
).toList();
return Scaffold(
// Add 6 lines from here...
appBar: AppBar(
title: Text('Saved Suggestions'),
),
body: ListView(children: divided),
); // ... to here.
,
),
);
【问题讨论】:
【参考方案1】:Dart 中的可迭代对象(List、Map、Set 等)具有“函数式”方法,可将常见类型的循环应用于其元素。 map()
在迭代的每个元素上运行一个函数,并且该函数返回的任何内容都被收集到一个新的迭代中。
List<int> squares(List<int> numbers)
return numbers.map((number) => number * number).toList();
它将Iterable<Type1>
“映射”到Iterable<Type2>
。尽管它们可以是与我的示例中相同的类型。
【讨论】:
以上是关于我无法理解 Iterable 类然后使用 .map 语法。你能用一种简单的语言来表达吗?的主要内容,如果未能解决你的问题,请参考以下文章
Hadoop Map Reduce - Iterable上的嵌套循环 reduce中的值忽略将文本写入上下文时的文本结果