Tilføj metoder til en struct
Giv Deres type funktionalitet.
Tilføj metoder til en struct er en gratis Mojo Academy-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Mojo Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Mojo Academy-kurset indeholder 4 lektioner i alt.
Data plus adfærd
Indtil videre indeholder din struct kun data. En metode er en funktion, der hører til inde i structen og giver din type adfærd. 🚀
Metoder hører til indeni
Du skriver en metode ved at definere en funktion, der er indrykket inde i structen sammen med dens felter og __init__.
struct Point:
var x: Int
var y: Int
fn show(self):
print(self.x, self.y)self kommer først
Det første parameter i en metode er self, altså den instans, metoden blev kaldt på. Gennem self kan metoden læse og bruge structens egne felter.
fn show(self):
print(self.x)Kald en metode
Du kalder en metode med punktnotation på en instans. Mojo giver automatisk instansen videre som self.
var p = Point(3, 4)
p.show()Metoder kan returnere værdier
Ligesom enhver funktion kan en metode returnere et resultat. Angiv returtypen efter en pil, og returnér en værdi.
fn sum(self) -> Int:
return self.x + self.yMetoder tager også argumenter
Efter self kan en metode tage flere argumenter, ligesom en almindelig funktion, så den kan arbejde med ekstra data fra kaldet.
fn scaled(self, factor: Int) -> Int:
return self.x * factorSkrivebeskyttet som standard
Et almindeligt self-parameter er lånt, så metoden kan læse felter, men ikke ændre dem. Det holder dine data sikre.
Ændr med mut self
Hvis en metode skal kunne ændre instansen, skal du markere parameteren som mut self. Så opdaterer tildelinger til self.x faktisk værdien.
fn move_right(mut self, step: Int):
self.x += stepMetoder bygger videre på hinanden
En metode kan kalde en anden gennem self, så du kan sammensætte små funktioner til større funktioner uden at gentage kode.
fn report(self):
print(self.sum())Indkapsling i praksis
At holde felter og de metoder, der bruger dem, samlet i én struct kaldes indkapsling. Typen ejer både sine data og den måde, dataene opfører sig på.
En struct, der udfører arbejde
Her gemmer en Point både koordinater og beregner deres sum. Din type er nu aktiv og ikke bare en passiv databeholder.
struct Point:
var x: Int
var y: Int
fn sum(self) -> Int:
return self.x + self.yHurtigt tjek
Lad os se, hvad du ved om metoder.
Opsummering
Du gav din struct metoder, der læser og endda ændrer dens felter. Nu sammenligner du Mojo-structs med Python-klasser. 🧩
Lær Mojo 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 “Tilføj metoder til en struct” gratis?
Ja — alle 3 lektioner i læringssporet Mojo Academy, inklusive “Tilføj metoder til en struct”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Mojo Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Tilføj metoder til en struct”?
Giv Deres type funktionalitet. Du øver dig i Mojo 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å Mojo Academy?
Der kræves ingen tidligere erfaring. Mojo 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 3 af 4.
Hvor lang tid tager lektionen “Tilføj metoder til en struct”?
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 Mojo Academy-lektion?
Ja. Alle Mojo 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
- Definér en struct
- Felter og __init__-metoden
- Tilføj metoder til en struct
- Structs sammenlignet med Python-klasser