Generieke functies voor traits
Schrijf één functie voor veel types
Generieke functies voor traits is een gratis Mojo Academy-les op CoddyKit. Dit is les 4 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Mojo Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Mojo Academy bevat in totaal 4 lessen.
Eén functie, veel typen
De echte kracht van traits is generieke code: schrijf een functie één keer en deze werkt voor elk type dat eraan voldoet. 🚀
Een trait als beperking
Je gebruikt een trait als beperking voor een generieke parameter en belooft daarmee dat het type de aangeroepen methoden heeft.
Syntaxis van generieke parameters
Tussen vierkante haken geef je een typeparameter en de trait waaraan deze moet voldoen een naam. Daarna gebruik je de parameter zoals elk type.
fn announce[T: Greetable](item: T):
print(item.greet())Trait-methoden aanroepen
Binnen de functie mag je elke methode aanroepen die de trait garandeert. De compiler weet dat greet op T bestaat.
Werkt voor elk type dat eraan voldoet
Geef een Dog of een Robot door aan dezelfde functie. Beide voldoen aan Greetable, dus beide worden zonder problemen geaccepteerd.
announce(Dog("Rex"))
announce(Robot())Typeveiligheid blijft behouden
Generics zijn niet losjes getypeerd. Als een type niet aan de beperking voldoet, weigert de compiler het voordat het programma wordt uitgevoerd.
Geen runtime-nadeel
Mojo specialiseert generieke code tijdens het compileren en genereert een snelle versie per type. Flexibiliteit kost geen snelheid.
Minder duplicatie
Zonder generics zou je voor elk type een functie kopiëren. Met een trait-beperking kan één definitie voor alle typen dienen, waardoor duplicatie afneemt.
Meerdere beperkingen
Een parameter kan meerdere traits tegelijk vereisen, zodat het type elke mogelijkheid heeft die de functie nodig heeft.
Ontwerpen rond traits
Goede Mojo-API's vragen om de kleinste trait die ze nodig hebben. Functies blijven flexibel en drukken toch precies hun vereisten uit.
Het volledige plaatje
Trait, voldoen en generics komen samen: definieer een contract, implementeer het en schrijf er vervolgens één herbruikbare functie voor.
fn print_all[T: Stringable](x: T):
print(String(x))Korte controle
Waarom gebruik je een trait-beperking bij een generieke functie?
Samenvatting
Generieke functies met een trait-beperking werken voor alle typen die eraan voldoen en blijven typeveilig en snel. Je schrijft nu herbruikbare Mojo-code! 🎉
Leer Mojo met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 30
- Lessen
- 120
Veelgestelde vragen
Is de les “Generieke functies voor traits” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad Mojo Academy, waaronder “Generieke functies voor traits”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Mojo Academy bevat in totaal 4 lessen.
Wat leer ik in “Generieke functies voor traits”?
Schrijf één functie voor veel types Je oefent met Mojo Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Mojo Academy te beginnen?
Ervaring vooraf is niet nodig. Mojo Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 4 van 4.
Hoe lang duurt de les “Generieke functies voor traits”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Mojo Academy?
Ja. Elke les over Mojo Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Wat is een trait?
- Een struct conform maken aan een trait
- Ingebouwde traits zoals Copyable
- Generieke functies voor traits