Dart Academy · Lektion

Sammensætning af rene funktionspipelines

Kæd transformationer forudsigeligt

Lektion 4 af 413 trin

Sammensætning af rene funktionspipelines er en gratis Dart Academy-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Dart Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Dart Academy-kurset indeholder 4 lektioner i alt.

Hvad er en ren funktion

En ren funktion returnerer det samme output for det samme input og ændrer intet uden for sig selv. Den er forudsigelig og nem at teste. ✨

int double(int x) => x * 2; // pure

Find sideeffekter

En funktion med sideeffekter påvirker verden uden for sig selv, f.eks. ved at udskrive noget eller ændre en global værdi. De er sværere at gennemskue.

var log = [];
void impure(int x) => log.add(x); // side effect

Hvorfor renhed hjælper pipelines

Rene funktioner kan kædes sikkert, fordi hvert trin kun afhænger af sit input. Du kan sammensætte dem uden overraskelser.

Sammenkædning af map og where

En pipeline er blot en kæde af transformationer. Filtrér med where, og omform derefter med map, så kæden kan læses oppefra og ned.

var r = [1, 2, 3, 4]
  .where((n) => n.isEven)
  .map((n) => n * 10);

Hvert trin er lazy

where og map returnerer lazy iterables, så hele kæden kun kører, når den forbruges. Tilføj toList for at materialisere resultaterne.

print(r.toList()); // [20, 40]

Afslut med fold

Afslut en pipeline ved at aggregere. Her summerer fold de filtrerede og transformerede værdier til ét tal.

var sum = [1, 2, 3, 4]
  .where((n) => n.isEven)
  .fold(0, (a, b) => a + b);

Sammensætning af to funktioner

Du kan bygge en ny funktion ved at føre ét resultat ind i en anden funktion. Denne sammensætning kan læses som: udfør f og derefter g.

int Function(int) compose(
    int Function(int) f, int Function(int) g) =>
  (x) => g(f(x));

Brug den sammensatte funktion

Sammensæt små, rene trin til én genanvendelig funktion. Resultatet fungerer som en enkel transformator med ét klart formål.

var f = compose((x) => x + 1, (x) => x * 2);
print(f(3)); // 8

Hold trinnene små

Små, navngivne, rene funktioner gør pipelines selvforklarende. Hvert trin udfører én opgave, så kæden læses som en opskrift.

Undgå at ændre input

Returnér nye værdier i stedet for at ændre argumenterne på stedet. Når input holdes uændrede, bliver en pipeline pålidelig.

List<int> bump(List<int> xs) =>
  xs.map((x) => x + 1).toList();

En komplet pipeline

Samlet set: filtrér, transformér og aggregér. Én læsbar pipeline omdanner rå data til et endeligt svar.

var avgx10 = [2, 4, 6]
  .map((n) => n * 10)
  .reduce((a, b) => a + b);

Hurtigt tjek

Find ud af, hvad der gør en funktion ren.

Opsummering

Rene funktioner kan sammensættes til klare, lazy pipelines: filtrér, map, og aggregér derefter. Små trin skaber store resultater på forudsigelig vis. 🎯

Gratis at komme i gang

Lær Dart med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
30
Lektioner
120

Ofte stillede spørgsmål

Er lektionen “Sammensætning af rene funktionspipelines” gratis?

Ja — hele teksten til “Sammensætning af rene funktionspipelines” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Dart Academy-kurset, skal du opgradere til CoddyKit PRO. Dart Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Sammensætning af rene funktionspipelines”?

Kæd transformationer forudsigeligt Du øver dig i Dart Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Dart Academy?

Der kræves ingen tidligere erfaring. Dart Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.

Hvor lang tid tager lektionen “Sammensætning af rene funktionspipelines”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Dart Academy-lektion?

Ja. Alle Dart Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Funktioner af højere orden og currying
  2. fold, reduce og expand
  3. Lazy iterables og generatorer med sync*
  4. Sammensætning af rene funktionspipelines
← Tilbage til Dart Academy