我当时无法使用.map语法理解Iterable类。你能用一种简单的语言来表达吗?

时间:2019-08-25 05:47:04

标签: flutter dart iterable

我知道它使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 个答案:

答案 0 :(得分:0)

Dart中的Iterables(List,Map,Set等)具有“功能样式”方法,该方法将常见的循环类型应用于其元素。 map()在可迭代的每个元素上运行一个函数,并且该函数返回的所有内容都收集到一个新的可迭代中。

List<int> squares(List<int> numbers) {
  return numbers.map((number) => number * number).toList();
}

它将Iterable<Type1>“映射”到Iterable<Type2>。尽管它们可以是与我的示例相同的类型。