我无法理解 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&lt;Type1&gt;“映射”到Iterable&lt;Type2&gt;。尽管它们可以是与我的示例中相同的类型。

【讨论】:

以上是关于我无法理解 Iterable 类然后使用 .map 语法。你能用一种简单的语言来表达吗?的主要内容,如果未能解决你的问题,请参考以下文章

iterable

iterable

Dart基础:可迭代的集合

Hadoop Map Reduce - Iterable上的嵌套循环 reduce中的值忽略将文本写入上下文时的文本结果

java 数据集合类

为啥 map over 一个 iterable 返回一个一次性的 iterable?