Skriv din första extension
Lägg till nya metoder på en inbyggd typ
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()); // 25Lä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. 🚀
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
- Skriv din första extension
- Extensions på generics
- Statiska extension-medlemmar och konflikter
- Extension types för wrappers utan kostnad