Leggere gli argomenti della riga di comando
Analizzi argv con un allocator.
Leggere gli argomenti della riga di comando è una lezione Zig Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Zig Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Zig Academy include 4 lezioni in totale.
Perché gli argomenti sono importanti
Un vero strumento CLI reagisce a ciò che l'utente scrive dopo il suo nome. Quelle parole sono gli argomenti della riga di comando e leggerli è il primo passo. 🛠️
Zig non nasconde nulla
Altri linguaggi forniscono una variabile argv speciale. Zig rimane esplicito: dovete richiedere personalmente gli argomenti allo spazio dei nomi std.process.
const std = @import("std");Gli argomenti richiedono un allocator
La decodifica degli argomenti può allocare memoria, quindi Zig vi chiede subito un allocator. Nessuna allocazione avviene a vostra insaputa.
var gpa = std.heap.GeneralPurposeAllocator(.{}){};
const a = gpa.allocator();argsAlloc restituisce uno slice
Chiamate std.process.argsAlloc passando il vostro allocator. Restituisce uno slice di stringhe, una per argomento, di cui avete piena proprietà.
const args = try std.process.argsAlloc(a);Liberate ciò che avete allocato
Poiché siete proprietari di quello slice, dovete liberarlo con argsFree. Un defer subito dopo la chiamata mantiene automatica la pulizia.
defer std.process.argsFree(a, args);Il primo argomento è il programma
Per convenzione, args[0] è il percorso del programma stesso, non un input dell'utente. I valori effettivi che vi interessano iniziano dall'indice 1.
const program = args[0];Contate quanti argomenti avete ricevuto
Lo slice contiene la propria lunghezza, quindi args.len indica quanti argomenti sono arrivati. Verificatelo prima di accedere a un qualsiasi indice.
if (args.len < 2) return error.MissingArgument;Iterate sugli input
Iterate sui valori dell'utente escludendo il nome del programma. Un ciclo for su args[1..] visita ogni argomento nell'ordine.
for (args[1..]) |arg| {
std.debug.print("{s}\n", .{arg});
}Ogni argomento è composto da byte
Ogni argomento è un []const u8, cioè uno slice di byte. Da questo punto, confrontarlo o analizzarlo equivale al normale lavoro con le stringhe in Zig.
if (std.mem.eql(u8, arg, "--help")) {}Trasformate il testo in numeri
Gli argomenti arrivano come testo. Per ottenere un numero, analizzatelo con std.fmt.parseInt, che segnala chiaramente l'errore se il testo non è un intero valido.
const n = try std.fmt.parseInt(i32, args[1], 10);Un'alternativa con iteratore
Preferite l'elaborazione in streaming? std.process.argsWithAllocator fornisce un iteratore che fate avanzare con next(), utile quando elaborate gli argomenti uno alla volta.
var it = try std.process.argsWithAllocator(a);
defer it.deinit();Controllo rapido
Pensate a ciò che si trova all'inizio dello slice degli argomenti.
Riepilogo
Avete letto gli argomenti con argsAlloc, li avete liberati con argsFree, avete ignorato args[0] e trasformato il testo in valori. Ora la vostra CLI ascolta l'utente. 🎯
Domande Frequenti
La lezione «Leggere gli argomenti della riga di comando» è gratuita?
Sì — il testo completo di «Leggere gli argomenti della riga di comando» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Zig Academy, passa a CoddyKit PRO. Il corso Zig Academy include 4 lezioni in totale.
Cosa imparerò in «Leggere gli argomenti della riga di comando»?
Analizzi argv con un allocator. Eserciti Zig Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Zig Academy?
Non è richiesta alcuna esperienza precedente. Zig Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.
Quanto tempo richiede la lezione «Leggere gli argomenti della riga di comando»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Zig Academy?
Sì. Ogni lezione Zig Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Leggere gli argomenti della riga di comando
- Leggere file e stdin
- Scrivere l'output e i codici di uscita
- Creare il pacchetto e rilasciare il binario