如何在dart中展开列表

如何在dart中展开列表,dart,flutter,Dart,Flutter,在Javascript中,我将使用一个扩展运算符: 现在我对颤振也有同样的问题: Widget build(BuildContext context) { return Column( children: <Widget>[ MyHeader(), _buildListOfWidgetForBody(), // <- how to spread this <Widget>[] ???? MyCu

在Javascript中,我将使用一个扩展运算符:

现在我对颤振也有同样的问题:

 Widget build(BuildContext context) {
    return Column(
      children: <Widget>[
        MyHeader(),
        _buildListOfWidgetForBody(), // <- how to spread this <Widget>[] ????
        MyCustomFooter(),
      ],
    );
  }
小部件构建(构建上下文){
返回列(
儿童:[
MyHeader(),

_buildListOfWidgetForBody(),//将其添加到dart的未来版本时出现问题

但是现在你可以使用
sync*
yield*

Iterable<Widget> _buildChildren sync* {
  yield MyHeader();
  yield* _buildListOfWidgetForBody();
  yield MyCustomFooter();
}
Iterable\u buildChildren同步*{
产生MyHeader();
屈服*_buildListOfWidgetForBody();
产生MyCustomFooter();
}
编辑:从Dart 2.3开始,您现在可以执行以下操作:

Widget build(BuildContext context) {
    return Column(
      children: <Widget>[
        MyHeader(),
        ..._buildListOfWidgetForBody(),
        MyCustomFooter(),
      ],
    );
  }
小部件构建(构建上下文){
返回列(
儿童:[
MyHeader(),
…\u buildListOfWidgetForBody(),
MyCustomFooter(),
],
);
}
更新-2019年4月20日 自从发布了Dart 2.3以来,您现在可以使用spread操作符

List<int> a = [0,1,2,3,4];
List<int> b = [6,7,8,9];
List<int> c = [...a,5,...b];
列表a=[0,1,2,3,4];
列表b=[6,7,8,9];
列表c=[…a,5,…b];

您现在可以从飞镖2.3进行撒布

var a = [0,1,2,3,4];
var b = [6,7,8,9];
var c = [...a,5,...b];

print(c);  // prints: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

您可能需要为具有Ruby背景的人读取关键字:splat操作符[*[1,2],3]