Ta ägarskap med owned
Överför ett värde till en funktion.
Ta ägarskap med owned är en gratis lektion i Mojo Academy på CoddyKit. Detta är lektion 3 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.
Ett tredje sätt att skicka värden
Ni har lånat för läsning och använt inout för redigering. Den tredje konventionen låter en funktion ta över ett värde helt och hållet. 📦
Möt owned
Ett owned-argument överför ägarskapet till funktionen. Funktionen håller nu värdet som sitt eget och kan använda eller lagra det.
Markera parametern
Ni skriver owned före parameternamnet. Inuti funktionen har Ni full kontroll: Ni kan mutera, lagra eller förbruka värdet.
fn consume(owned name: String):
print(name)Funktionen blir ägare
Med owned flyttas värdets livslängd in i funktionen. När funktionen avslutas ansvarar den för att förstöra värdet.
Varför ta över ägarskapet
Använd owned när en funktion behöver behålla värdet, till exempel för att lagra det i en struct eller samling, i stället för att bara läsa det en kort stund.
Owned innebär också muterbarhet
Eftersom funktionen äger värdet får den fritt ändra det. Det finns ingen anropare att skydda, eftersom värdet nu tillhör funktionen.
Så anländer värdet
Som standard ger Mojo en owned-parameter en färsk kopia, så anroparens ursprungliga värde förblir oförändrat om Ni inte ber om att flytta det.
Undvik kopian
Om Ni inte längre behöver originalet kan Ni lämna över värdet i stället för att kopiera det. Den överföringen är ämnet för nästa lektion.
Tydlig avsikt
Genom att välja owned visar Ni läsaren att funktionen kommer att behålla värdet. Signaturen dokumenterar datans färd med en blick.
De tre konventionerna
Nu har Ni alla tre: borrowed läser, inout muterar på plats och owned tar över värdet. Var och en uttrycker en tydlig avsikt.
Välj utifrån ansvar
Fråga vem som ska ansvara för värdet efter anropet. Om svaret är funktionen väljer Ni owned.
Snabbkontroll
Låt oss kontrollera vad owned innebär för en funktion.
Sammanfattning
owned överlämnar ägarskapet för ett värde till funktionen, som kan behålla, ändra eller förstöra det. Använd det när funktionen måste äga datan. 🎯
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 ”Ta ägarskap med owned” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Mojo Academy, inklusive ”Ta ägarskap med owned”, 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 ”Ta ägarskap med owned”?
Överför ett värde till en funktion. 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 3 av 4.
Hur lång tid tar lektionen ”Ta ägarskap med owned”?
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
- Låna argument skrivskyddat
- Mutera på plats med inout
- Ta ägarskap med owned
- Överföringsoperatorn