Dart Academy · Lektion

Skriv din första extension

Lägg till nya metoder på en inbyggd typ

Lektion 1 av 413 steg

Skriv din första extension är en gratis lektion i Dart Academy på CoddyKit. Detta är lektion 1 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Dart Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Dart Academy innehåller totalt 4 lektioner.

Metoder som Ni inte kan lägga till

Har du någonsin önskat att int hade en praktisk metod som den saknar? Du kan inte redigera den inbyggda klassen, men Dart ger dig en annan möjlighet.

Möt extension

En extension låter dig lägga till nya metoder i en befintlig typ utan att skapa en subklass eller ändra dess källkod. 🎁

extension on String {
  // new methods go here
}

Grundformen

Du skriver extension Name on Type och lägger sedan till metoder inom klamrarna. Namnet väljer du själv; typen är den typ som du utökar.

extension NumberParsing on String {
  int doubled() => int.parse(this) * 2;
}

this betyder mottagaren

Inuti en extension syftar this på värdet som du anropade metoden på, precis som inuti en vanlig klassmetod.

extension on int {
  int squared() => this * this;
}

Anropa den som en riktig metod

När metoden väl är definierad känns den helt inbyggd. Du anropar den med en punkt, precis som metoder som följer med typen.

print(5.squared()); // 25

Lägg till en getter, inte en metod

Extensions kan även lägga till getters. Ta bort parenteserna så får du en ren, egenskapsliknande läsning av valfritt värde.

extension on int {
  bool get isEven2 => this % 2 == 0;
}
print(4.isEven2);

Extensions är statiska

Upplösningen sker vid kompilering utifrån den statiska typen. Den ursprungliga klassen ändras inte alls vid körning.

Namngivning är valfri

Du kan även skriva en namnlös extension. Den fungerar fortfarande, men ett namn hjälper dig att dölja eller importera den senare vid behov.

extension on double {
  String money() => "$" + toStringAsFixed(2);
}

Håll en idé per extension

Samla relaterade hjälpfunktioner under ett fokuserat namn. Små extensions med tydliga namn är lättare att läsa än en enda jättelik samling.

extension StringCasing on String {
  String shout() => toUpperCase() + "!";
}

Du kan inte lägga till fält

Extensions lägger till metoder och getters, men inte nya instansfält. Det finns ingen plats i det ursprungliga objektet där de kan lagras.

Därför är detta kraftfullt

Extensions ger dig lättlästa och upptäckbara hjälpfunktioner utan wrapper-klasser. Dina vanliga typer får exakt det ordförråd som appen behöver.

Snabb kontroll

Låt oss kontrollera grundsyntaxen för en extension.

Sammanfattning: Din första extension

Du har lärt dig att en extension on Type lägger till metoder och getters i befintliga typer, använder this för mottagaren och löses statiskt. 🚀

Gratis att börja

Lär dig Dart med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
30
Lektioner
120

Vanliga frågor

Är lektionen ”Skriv din första extension” gratis?

Ja – hela texten till ”Skriv din första extension” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Dart Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Dart Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Skriv din första extension”?

Lägg till nya metoder på en inbyggd typ Ni övar på Dart Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Dart Academy?

Du behöver inga förkunskaper. Utbildningen i Dart Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.

Hur lång tid tar lektionen ”Skriv din första extension”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Dart Academy-lektionen?

Ja. Varje Dart Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Skriv din första extension
  2. Extensions på generics
  3. Statiska extension-medlemmar och konflikter
  4. Extension types för wrappers utan kostnad
← Tillbaka till Dart Academy