如何在Dart中传播列表

时间:2019-02-15 12:12:19

标签: dart flutter

在Javascript中,我将使用传播运算符:

enter image description here

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

[HttpGet]
[Route("{vehicleId}")]
public InfoDto GetInfo(int vehicleId, [FromUri] string lang)
{
   return ...;
}

3 个答案:

答案 0 :(得分:12)

您现在可以使用 Dart 2.3

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

print(c);

答案 1 :(得分:3)

您没有,at the moment。但是您可以从中构建一个List并随时随地插入/添加其他元素。

 Widget build(BuildContext context) {
   final List<Widget> columnWidgets = List.from(_buildListOfWidgetForBody())
                       ..insert(0, MyHeader())
                       ..add(MyCustomFooter());

    return Column(
          children: columnWidgets
        );   
    }

更新-2019年4月20日

Dart 2.3 发布以来,您现在就可以使用价差运算符。

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

答案 2 :(得分:2)

存在将其添加到飞镖https://github.com/dart-lang/language/issues/47的未来版本中的问题

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

Iterable<Widget> _buildChildren sync* {
  yield MyHeader();
  yield* _buildListOfWidgetForBody();
  yield MyCustomFooter();
}

编辑:从Dart 2.3开始,您可以执行以下操作:

Widget build(BuildContext context) {
    return Column(
      children: <Widget>[
        MyHeader(),
        ..._buildListOfWidgetForBody(),
        MyCustomFooter(),
      ],
    );
  }