Trasformare gli stream: map, where, take
Rimodellare una sequenza di eventi.
Trasformare gli stream: map, where, take è una lezione Dart Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Dart Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Dart Academy include 4 lezioni in totale.
Gli stream si possono trasformare
Proprio come gli elenchi, gli stream dispongono di metodi utili che modificano i loro eventi. Può trasformare uno stream in uno nuovo senza toccare la sorgente.
map trasforma ogni evento
Il metodo map esegue una funzione su ogni evento ed emette il risultato. Trasforma uno stream di valori in uno stream di valori trasformati.
final doubled = numbers.map((n) => n * 2);map mantiene il numero
Con map, il numero di eventi rimane invariato: cambia solo la loro forma. Tre input producono sempre esattamente tre output. ✨
Stream.fromIterable([1, 2, 3])
.map((n) => 'Item $n');where filtra gli eventi
Il metodo where conserva solo gli eventi che superano un test. Tutto ciò che restituisce false viene eliminato dal nuovo stream.
final evens = numbers.where((n) => n.isEven);where può ridurre lo stream
A differenza di map, where può emettere meno eventi di quanti ne abbia ricevuti. Se nessun evento supera il test, lo stream risultante rimane vuoto.
take limita il numero
Il metodo take emette solo i primi n eventi, poi smette di ascoltare. È perfetto quando Le servono solo pochi valori da uno stream lungo. 🎯
final firstThree = bigStream.take(3);take annulla in anticipo
Dopo aver fornito i suoi n eventi, take annulla automaticamente l'iscrizione alla sorgente. Lo stream originale smette di produrre eventi per Lei.
Concatenare le trasformazioni
Questi metodi restituiscono nuovi stream, quindi può concatenarli. Legga la catena da sinistra a destra: filtrare, poi trasformare e infine limitare.
numbers
.where((n) => n.isEven)
.map((n) => n * 10)
.take(2);Pigre per natura
Le trasformazioni sono lazy: non viene eseguito nulla finché non inizia l'ascolto. La catena elabora gli eventi man mano che arrivano, uno alla volta.
Altri strumenti: takeWhile e skip
Oltre ai tre fondamentali, takeWhile emette eventi finché un test non fallisce, mentre skip ignora i primi n eventi. Si applica lo stesso stile di concatenazione.
stream.skip(2).takeWhile((n) => n < 100);Usare il risultato
Dopo la trasformazione, legga il nuovo stream con await for oppure lo ascolti. Ogni valore emesso ha già attraversato l'intera catena.
await for (final v in transformed) {
print(v);
}Verifica rapida
Quale metodo può ridurre il numero di eventi?
Riepilogo
Può modificare gli stream con map per trasformare, where per filtrare e take per limitare; tutti questi metodi sono concatenabili e lazy finché non inizia l'ascolto. 🎉
Domande Frequenti
La lezione «Trasformare gli stream: map, where, take» è gratuita?
Sì — il testo completo di «Trasformare gli stream: map, where, take» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Dart Academy, passa a CoddyKit PRO. Il corso Dart Academy include 4 lezioni in totale.
Cosa imparerò in «Trasformare gli stream: map, where, take»?
Rimodellare una sequenza di eventi. Eserciti Dart Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Dart Academy?
Non è richiesta alcuna esperienza precedente. Dart Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.
Quanto tempo richiede la lezione «Trasformare gli stream: map, where, take»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Dart Academy?
Sì. Ogni lezione Dart Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Ascoltare con await for
- Stream singoli e broadcast
- Trasformare gli stream: map, where, take
- Creare stream con async*