0Pricing
Zig Academy · Lekcja

Odczytywanie argumentów wiersza poleceń

Analizuj argv za pomocą alokatora.

Odczytywanie argumentów wiersza poleceń to bezpłatna lekcja Zig Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Zig Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Zig Academy zawiera 4 lekcji w sumie.

Dlaczego argumenty mają znaczenie

Prawdziwe narzędzie CLI reaguje na to, co użytkownik wpisuje po jego nazwie. Te słowa to argumenty wiersza poleceń, a ich odczytanie jest pierwszym krokiem. 🛠️

Zig nie ukrywa niczego

Inne języki udostępniają specjalną zmienną argv. Zig pozostaje jawny: samodzielnie pobierasz argumenty z przestrzeni nazw std.process.

const std = @import("std");

Argumenty wymagają alokatora

Dekodowanie argumentów może wymagać alokacji pamięci, dlatego Zig od razu prosi o alokator. Żadna alokacja nie odbywa się za kulisami.

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

argsAlloc zwraca wycinek

Wywołaj std.process.argsAlloc, przekazując swój alokator. Funkcja zwraca wycinek napisów — po jednym na każdy argument — którego jesteś pełnym właścicielem.

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

Zwalniaj to, co alokujesz

Ponieważ jesteś właścicielem tego wycinka, musisz go zwolnić za pomocą argsFree. Umieszczenie defer bezpośrednio po wywołaniu automatyzuje sprzątanie.

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

Pierwszy argument to program

Zgodnie z konwencją args[0] zawiera ścieżkę do własnego programu, a nie dane wejściowe użytkownika. Rzeczywiste interesujące Cię wartości zaczynają się od indeksu 1.

const program = args[0];

Policz otrzymane argumenty

Wycinek przechowuje własną długość, więc args.len informuje, ile argumentów otrzymano. Należy sprawdzić tę wartość przed odwołaniem się do dowolnego indeksu.

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

Iteruj po danych wejściowych

Iteruj po wartościach użytkownika, pomijając nazwę programu przez utworzenie wycinka. Pętla for po args[1..] odwiedza każdy argument w kolejności.

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

Każdy argument to bajty

Każdy argument ma typ []const u8, czyli jest wycinkiem bajtów. Od tego momentu porównywanie lub analizowanie argumentu to zwykła praca z napisami w Zig.

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

Zamieniaj tekst na liczby

Argumenty są przekazywane jako tekst. Aby uzyskać liczbę, przeanalizuj tekst za pomocą std.fmt.parseInt, które jasno sygnalizuje błąd, jeśli tekst nie jest prawidłową liczbą całkowitą.

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

Alternatywa w postaci iteratora

Wolisz przetwarzanie strumieniowe? std.process.argsWithAllocator udostępnia iterator przesuwany za pomocą next(), co jest wygodne przy przetwarzaniu argumentów pojedynczo.

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

Szybkie sprawdzenie

Zastanów się, co znajduje się na początku wycinka argumentów.

Podsumowanie

Odczytywałeś argumenty za pomocą argsAlloc, zwalniałeś je przez argsFree, pomijałeś args[0] i analizowałeś tekst, aby uzyskać wartości. Twoje CLI potrafi już odbierać dane od użytkownika. 🎯

Często zadawane pytania

Czy lekcja „Odczytywanie argumentów wiersza poleceń” jest bezpłatna?

Tak — pełny tekst „Odczytywanie argumentów wiersza poleceń” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Zig Academy, przejdź na CoddyKit PRO. Kurs Zig Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Odczytywanie argumentów wiersza poleceń”?

Analizuj argv za pomocą alokatora. Ćwiczysz Zig Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Zig Academy?

Nie wymagamy żadnego doświadczenia. Zig Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „Odczytywanie argumentów wiersza poleceń”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Zig Academy?

Tak. Każda lekcja Zig Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Odczytywanie argumentów wiersza poleceń
  2. Odczytywanie plików i stdin
  3. Zapisywanie danych wyjściowych i kody zakończenia
  4. Pakowanie i wydawanie pliku binarnego
← Powrót do Zig Academy