A veces veo esto
List list = [];
Luego list..add(color)
¿Cuál es la diferencia al usar 1 punto ( .) y 2 puntos ( ..)?
..se conoce como notación en cascada . Le permite no repetir el mismo objetivo si desea llamar a varios métodos en el mismo objeto.
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);
Es el operador en cascada de Dart
var l1 = new List<int>()..add(0)..addAll([1, 2, 3]);
resulta en l1ser una lista[0, 1, 2, 3]
var l1 = new List<int>().add(0).addAll([1, 2, 3]);
da como resultado un error, porque .add(0)devuelvevoid
..(en el ejemplo anterior) se refiere new List(), mientras que .(en el segundo) se refiere al valor de retorno de la parte anterior de la expresión.
..se introdujo para evitar la necesidad de regresar thisen todo tipo de métodos, como add()poder usar una API de manera fluida.
.. proporciona esto fuera de la caja para todas las clases.
.. (in former example) refers to new List(), ¿quiere decir que estamos creando una nuevaListcuando estamos usando..NO en mi opinión? Tunewpalabra me confundió , ¿es realmente NUEVO o estás hablando denewpalabras clave aquí?newes ahora opcional...se refiere a la lista devuelta pornew List<int>()y permite invocar múltiples métodos como siadd(0)addAll(...)no se repitiera,l1.y es la instancia de lista creada a la que se asignal1, no el valor de retorno del último método en la cadena (addAll(...)). ¿Responde esto a tu pregunta?newes opcional comenzando con Dart 2.0, acabo de confundirme con elnewcontexto anterior y gracias por su explicación...add(6)es comol1.add(6),.add(6)es comol1.add(5).add(6).add(5)retornosvoidy no se puede llamaradd()envoidEl ejemplo anterior es equivalente a:
fuente
..onClickno se traduce abutton.classes.onClick?..Se conoce como el operador en cascada en dardo.Le permite utilizar más de una operación de subsecuencia:
Ejemplos:
banerad..load()..show().Aquí hay otro ejemplo
fuente