Zig Academy · Les

Opdrachtregelargumenten lezen

Parse argv met een allocator

Les 1 van 413 stappen

Opdrachtregelargumenten lezen is een gratis Zig Academy-les op CoddyKit. Dit is les 1 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.

Waarom argumenten belangrijk zijn

Een echte CLI-tool reageert op wat de gebruiker na de naam typt. Die woorden zijn de opdrachtregelargumenten, en ze uitlezen is stap één. 🛠️

Zig verbergt niets voor je

Andere talen geven je een magische argv-variabele. Zig blijft expliciet: je vraagt zelf de argumenten op bij de naamruimte std.process.

const std = @import("std");

Argumenten hebben een allocator nodig

Het decoderen van argumenten kan geheugen toewijzen, dus Zig vraagt vooraf om een allocator. Er wordt niets buiten je zicht toegewezen.

var gpa = std.heap.GeneralPurposeAllocator(.{}){};
const a = gpa.allocator();

argsAlloc geeft een slice

Roep std.process.argsAlloc aan met je allocator. De functie geeft een slice van tekenreeksen terug, één per argument, waarvan je volledig eigenaar bent.

const args = try std.process.argsAlloc(a);

Geef toegewezen geheugen vrij

Omdat je eigenaar bent van die slice, moet je deze vrijgeven met argsFree. Een defer direct na de aanroep maakt het opruimen automatisch.

defer std.process.argsFree(a, args);

Het eerste argument is het programma

Volgens afspraak is args[0] het pad naar je eigen programma, niet de invoer van de gebruiker. De echte waarden die je nodig hebt beginnen bij index 1.

const program = args[0];

Tel hoeveel je er hebt gekregen

De slice bevat zijn eigen lengte, dus args.len vertelt je hoeveel argumenten zijn aangekomen. Controleer dit voordat je een index gebruikt.

if (args.len < 2) return error.MissingArgument;

Loop door de invoer

Doorloop de waarden van de gebruiker door voorbij de programmanaam te slicen. Een for-lus over args[1..] bezoekt elk argument in volgorde.

for (args[1..]) |arg| {
    std.debug.print("{s}\n", .{arg});
}

Elk argument bestaat uit bytes

Elk argument is een []const u8, een slice van bytes. Vanaf hier is het vergelijken of parseren ervan gewoon normaal Zig-werk met tekenreeksen.

if (std.mem.eql(u8, arg, "--help")) {}

Zet tekst om in getallen

Argumenten komen binnen als tekst. Om een getal te krijgen, parseer je de tekst met std.fmt.parseInt; de functie mislukt duidelijk als de tekst geen geldige integer is.

const n = try std.fmt.parseInt(i32, args[1], 10);

Een alternatief met een iterator

Liever streamen? std.process.argsWithAllocator geeft je een iterator die je met next() vooruitzet, handig wanneer je argumenten één voor één verwerkt.

var it = try std.process.argsWithAllocator(a);
defer it.deinit();

Snelle controle

Denk na over wat er vooraan in de argumentenslice staat.

Samenvatting

Je hebt argumenten gelezen met argsAlloc, ze vrijgegeven met argsFree, args[0] overgeslagen en tekst naar waarden geparseerd. Je CLI luistert nu naar de gebruiker. 🎯

Gratis beginnen

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 “Opdrachtregelargumenten lezen” gratis?

Ja — de volledige tekst van “Opdrachtregelargumenten lezen” 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 “Opdrachtregelargumenten lezen”?

Parse argv met een allocator 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 1 van 4.

Hoe lang duurt de les “Opdrachtregelargumenten lezen”?

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.

Alle lessen in deze cursus

  1. Opdrachtregelargumenten lezen
  2. Bestanden en stdin lezen
  3. Uitvoer en exitcodes schrijven
  4. De binary verpakken en releasen
← Terug naar Zig Academy