A volte vedo questo
List list = [];
Poi list..add(color)
Qual è la differenza nell'uso di 1 punto ( .) e 2 punti (.. )?
A volte vedo questo
List list = [];
Poi list..add(color)
Qual è la differenza nell'uso di 1 punto ( .) e 2 punti (.. )?
Risposte:
..è noto come notazione a cascata . Ti consente di non ripetere lo stesso target se desideri chiamare più metodi sullo stesso oggetto.
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);
È l'operatore a cascata di Dart
var l1 = new List<int>()..add(0)..addAll([1, 2, 3]);
risulta in l1un elenco[0, 1, 2, 3]
var l1 = new List<int>().add(0).addAll([1, 2, 3]);
provoca un errore, perché .add(0) restituiscevoid
..(nell'esempio precedente) si riferisce a new List(), mentre. (nel seguito) si riferisce al valore restituito della parte precedente dell'espressione.
..è stato introdotto per evitare la necessità di tornare thisin tutti i tipi di metodi comeadd() essere in grado di utilizzare un'API in modo fluido.
.. fornisce questo pronto per tutte le classi.
newè ora facoltativo. ..fa riferimento all'elenco restituito da new List<int>()e consente di richiamare più metodi come se add(0) addAll(...)non si ripetesse l1.ed è l'istanza dell'elenco creata a cui è assegnato l1, non il valore restituito dell'ultimo metodo nella catena ( addAll(...)). Questo risponde alla tua domanda?
newè facoltativo a partire da Dart 2.0, sono appena stato confuso dal newcontesto sopra e grazie per la tua spiegazione.
..add(6)è come l1.add(6), .add(6)è come l1.add(5).add(6). add(5)ritornavoid e non è possibile chiamare add()ilvoid
Le cascate (..) consentono di eseguire una sequenza di operazioni sullo stesso oggetto. leggi doc per i dettagli
querySelector('#confirm') // Get an object.
..text = 'Confirm' // Use its members.
..classes.add('important')
..onClick.listen((e) => window.alert('Confirmed!'));
L'esempio precedente equivale a:
var button = querySelector('#confirm');
button.text = 'Confirm';
button.classes.add('important');
button.onClick.listen((e) => window.alert('Confirmed!'));
..onClicknon si traduca in button.classes.onClick?
..È noto come l' operatore a cascata in dardo.
Ti consente di utilizzare più di un'operazione di sottosequenza:
Esempi:
banerad..load()..show().
List coursename;
coursename..add("java")..add("flutter" )..add("dart");
Ecco un altro esempio
.. (in former example) refers to new List(), vuoi dire che stiamo creando di nuovo un nuovoListquando usiamo..a mio avviso NO. Sono stato confuso dalla tuanewparola, è davvero NUOVO o stai parlando dinewparole chiave qui.