anytype-parameters
Accepteer elk argument met duck typing
anytype-parameters is een gratis Zig Academy-les op CoddyKit. Dit is les 4 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Zig Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Zig Academy bevat in totaal 4 lessen.
Alles accepteren met anytype
Soms wil je het type helemaal niet benoemen. Declareer een parameter als anytype en Zig leidt het type af uit het argument. 🦆
fn show(x: anytype) void {}Het type wordt bij de aanroep afgeleid
Met anytype is er geen voorafgaande typeparameter. Het argument van elke aanroeper bepaalt het concrete type voor die specialisatie.
show(42);
show(true);Dit is duck typing
Zig controleert alleen of de bewerkingen in de body werken voor het argument dat je doorgeeft. Als het de juiste vorm heeft, past het. Dat is duck typing.
Het type achterhalen als dat nodig is
Binnen de functie kun je nog steeds het type opvragen met @TypeOf en het daarna gebruiken voor lokale variabelen of retourwaarden.
fn dup(x: anytype) @TypeOf(x) {
return x;
}Ideaal voor hulpfuncties in printstijl
Functies die met veel vormen werken, zijn dol op anytype. Zig's eigen print accepteert een anytype-tuple met argumenten om te formatteren.
std.debug.print("{any}\n", .{x});Beperkingen komen uit de body
Er is geen expliciete interface. Als je binnen de functie x.len aanroept, kunnen alleen argumenten met daadwerkelijk een len-veld worden gecompileerd.
fn size(x: anytype) usize {
return x.len;
}Fouten gelden per specialisatie
Als een aanroeper een type doorgeeft dat de body niet kan verwerken, meldt Zig de fout op die aanroepplek en noemt het exacte type dat is mislukt.
Invoer valideren met comptime
Voor duidelijkere fouten kun je het type vroeg inspecteren met @typeInfo en de verkeerde vorm afwijzen met een compileertijdcontrole.
anytype tegenover comptime T: type
Gebruik comptime T: type wanneer je het type vooraf moet benoemen; kies anytype wanneer afleiding en flexibiliteit belangrijker zijn.
Nog steeds geen runtimekosten
Net als elke generieke functie in Zig wordt een anytype-functie tijdens het compileren gespecialiseerd. De flexibiliteit van de afleiding kost dus niets tijdens het uitvoeren van het programma.
anytype combineren met benoemde typen
Een functie kan beide stijlen combineren: één anytype-parameter voor flexibele invoer naast gewone getypeerde parameters voor vaste gegevens.
fn join(sep: u8, x: anytype) void {
_ = sep;
_ = x;
}Korte controle
Je schrijft fn show(x: anytype). Hoe bepaalt Zig het concrete type van x?
Samenvatting
Met het sleutelwoord anytype kan een parameter elk argument accepteren. Het type wordt afgeleid en de body wordt per aanroep gecontroleerd. Dit is Zig's flexibele duck typing. 🎯
Leer Zig 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 “anytype-parameters” gratis?
Ja — de volledige tekst van “anytype-parameters” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Zig Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Zig Academy bevat in totaal 4 lessen.
Wat leer ik in “anytype-parameters”?
Accepteer elk argument met duck typing Je oefent met Zig 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 Zig Academy te beginnen?
Ervaring vooraf is niet nodig. Zig 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 “anytype-parameters”?
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 Zig Academy?
Ja. Elke les over Zig 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.