Streams transformeren: map, where en take
Een reeks gebeurtenissen hervormen
Streams transformeren: map, where en take is een gratis Dart Academy-les op CoddyKit. Dit is les 3 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Dart Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Dart Academy bevat in totaal 4 lessen.
Streams kunnen worden getransformeerd
Net als lijsten hebben streams handige methoden die hun gebeurtenissen aanpassen. Je kunt een stream transformeren tot een nieuwe, zonder de bron aan te raken.
map transformeert elke gebeurtenis
De methode map voert voor elke gebeurtenis een functie uit en zendt het resultaat uit. Zo verandert één stream met waarden in een stream met getransformeerde waarden.
final doubled = numbers.map((n) => n * 2);map behoudt het aantal
Met map blijft het aantal gebeurtenissen gelijk; alleen hun vorm verandert. Drie invoerwaarden leveren altijd precies drie uitvoerwaarden op. ✨
Stream.fromIterable([1, 2, 3])
.map((n) => 'Item $n');where filtert gebeurtenissen
De methode where behoudt alleen gebeurtenissen die slagen voor een test. Alles waarvoor false wordt teruggegeven, wordt uit de nieuwe stream verwijderd.
final evens = numbers.where((n) => n.isEven);where kan de stream verkleinen
In tegenstelling tot map kan where minder gebeurtenissen uitzenden dan hij ontvangt. Als niets voor de test slaagt, blijft de resulterende stream leeg.
take beperkt het aantal
De methode take zendt alleen de eerste n gebeurtenissen uit en stopt daarna met luisteren. Dat is ideaal als je slechts enkele waarden uit een lange stream nodig hebt. 🎯
final firstThree = bigStream.take(3);take annuleert vroegtijdig
Nadat take zijn n gebeurtenissen heeft geleverd, annuleert het automatisch zijn abonnement op de bron. De oorspronkelijke stream produceert dan niets meer voor je.
Transformaties aan elkaar koppelen
Deze methoden geven nieuwe streams terug, dus je kunt ze chainen. Lees de keten van links naar rechts: eerst filteren, dan transformeren en daarna beperken.
numbers
.where((n) => n.isEven)
.map((n) => n * 10)
.take(2);Van nature lui
Transformaties zijn lazy: er wordt niets uitgevoerd totdat je luistert. De keten verwerkt gebeurtenissen alleen wanneer ze binnenkomen, één voor één.
Meer hulpmiddelen: takeWhile en skip
Naast de drie belangrijkste methoden zendt takeWhile gebeurtenissen uit totdat een test mislukt, en negeert skip de eerste n gebeurtenissen. Je kunt dezelfde manier van koppelen gebruiken.
stream.skip(2).takeWhile((n) => n < 100);Het resultaat gebruiken
Lees de nieuwe stream na het transformeren met await for of luister ernaar. Elke uitgezonden waarde heeft dan al de volledige keten doorlopen.
await for (final v in transformed) {
print(v);
}Korte controle
Welke methode kan het aantal gebeurtenissen verminderen?
Samenvatting
Je kunt streams aanpassen met map om te transformeren, where om te filteren en take om te beperken. Je kunt ze allemaal koppelen en ze blijven lui totdat je luistert. 🎉
Leer Dart met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 30
- Lessen
- 120
Veelgestelde vragen
Is de les “Streams transformeren: map, where en take” gratis?
Ja — de volledige tekst van “Streams transformeren: map, where en take” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Dart Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Dart Academy bevat in totaal 4 lessen.
Wat leer ik in “Streams transformeren: map, where en take”?
Een reeks gebeurtenissen hervormen Je oefent met Dart Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Dart Academy te beginnen?
Ervaring vooraf is niet nodig. Dart Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.
Hoe lang duurt de les “Streams transformeren: map, where en take”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Dart Academy?
Ja. Elke les over Dart Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Luisteren met await for
- Single-subscription- versus broadcast-streams
- Streams transformeren: map, where en take
- Streams maken met async*