我知道它使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.
},
),
);
}
答案 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>
。尽管它们可以是与我的示例相同的类型。