66 votes

Comment diffuser une liste en fléchettes

En Javascript, j'utiliserais un opérateur de diffusion:

entrez la description de l'image ici

Maintenant, j'ai le même problème avec Flutter:

  Widget build(BuildContext context) {
    return Column(
      children: <Widget>[
        MyHeader(),
        _buildListOfWidgetForBody(), // <- how to spread this <Widget>[] ????
        MyCustomFooter(),
      ],
    );
  }

103voto

ikben Points 456

Vous pouvez maintenant faire de la diffusion à partir de Dart 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]

14voto

JDx Points 367

Il y a un problème pour l'ajouter à la future version de dart https://github.com/dart-lang/language/issues/47

mais pour l'instant vous pouvez utiliser sync* et yield*

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

EDIT : Depuis Dart 2.3, vous pouvez maintenant faire:

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

11voto

miguelpruivo Points 936

Mise à jour - 20 avril 2019

Vous pouvez désormais utiliser l'opérateur de diffusion depuis la sortie de Dart 2.3.

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X