Vad är ett trait?
Ett kontrakt med obligatoriska metoder.
Vad är ett trait? är en gratis lektion i Mojo Academy på CoddyKit. Detta är lektion 1 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Mojo Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Mojo Academy innehåller totalt 4 lektioner.
Beteende som kan delas
Ibland behöver många typer samma förmåga, till exempel att kunna skrivas ut. Med ett trait kan du beskriva det gemensamma beteendet en gång. 🤝
Ett kontrakt av metoder
Tänk på ett trait som ett kontrakt: det listar de metoder som en typ måste tillhandahålla, utan att ange hur de fungerar.
Som ett gränssnitt
Om du har stött på gränssnitt i andra språk är ett trait samma idé. Det anger namnen på de obligatoriska metoderna och inget mer.
Deklarera ett trait
Du deklarerar ett trait med nyckelordet trait och listar sedan metodsignaturerna i det, ungefär som i en struct.
trait Greetable:
fn greet(self) -> String:
...De tre punkterna betyder tomt
Kroppen ... markerar en metod som obligatorisk men oimplementerad. Traitet lovar att metoden finns, inte vad den gör.
Ingen kod i traitet
Ett trait innehåller vanligtvis bara signaturer. Den faktiska logiken finns i varje typ som går med på att följa kontraktet.
Varför trait är användbara
Trait låter dig skriva kod mot en förmåga i stället för mot en specifik typ. Alla typer som uppfyller kraven fungerar direkt.
Många typer, ett löfte
En Dog och en Robot kan båda lova att hälsa. De delar samma trait men har helt olika intern implementation.
Trait jämfört med arv
Struct har inget klassbaserat arv, så trait är MoJos sätt att dela beteende. De beskriver vad som ska finnas, inte en basklass.
Kontrolleras vid kompilering
Mojo verifierar att traitet uppfylls vid kompilering. Om en typ saknar en obligatorisk metod misslyckas bygget tidigt.
Grundstenen
Trait utgör grunden för generell Mojo-kod. När du behärskar denna kontraktsidé kommer återanvändbara och typsäkra funktioner härnäst. 🧱
Snabb kontroll
Låt oss fastställa vad ett trait egentligen är.
Sammanfattning
Ett trait är ett kontrakt med obligatoriska metoder. Det beskriver gemensamt beteende så att många typer kan användas på samma sätt. 🎯
Lär dig Mojo 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 ”Vad är ett trait?” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Mojo Academy, inklusive ”Vad är ett trait?”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Mojo Academy innehåller totalt 4 lektioner.
Vad lär jag mig i ”Vad är ett trait?”?
Ett kontrakt med obligatoriska metoder. Ni övar på Mojo 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 Mojo Academy?
Du behöver inga förkunskaper. Utbildningen i Mojo 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 ”Vad är ett trait?”?
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 Mojo Academy-lektionen?
Ja. Varje Mojo 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
- Vad är ett trait?
- Anpassa en struct till ett trait
- Inbyggda trait som Copyable
- Generiska funktioner över trait