Parfois, je vois ceci List list = [];
Alors list..add(color)
Quelle est la différence en utilisant 1 point (.
) et 2 points (..
)?
..
est appelé notation en cascade . Cela vous permet de ne pas répéter la même cible si vous souhaitez appeler plusieurs méthodes sur le même objet.
List list = [];
list.add(color1);
list.add(color2);
list.add(color3);
list.add(color4);
// with cascade
List list = [];
list
..add(color1)
..add(color2)
..add(color3)
..add(color4);
C'est l'opérateur de cascade de Dart
var l1 = new List<int>()..add(0)..addAll([1, 2, 3]);
l1
est une liste [0, 1, 2, 3]
var l1 = new List<int>().add(0).addAll([1, 2, 3]);
entraîne une erreur, car .add(0)
renvoie void
..
(dans le premier exemple) fait référence à new List()
, tandis que .
(plus tard) se réfère à la valeur de retour de la partie précédente de l'expression.
..
a été introduit pour éviter la nécessité de renvoyer this
dans toutes sortes de méthodes, telles que add()
, afin de pouvoir utiliser une API de manière fluide.
..
fournit ceci immédiatement pour toutes les classes.