0Pricing
Zig Academy · Lekcja

Formatowanie tekstu za pomocą std.fmt

Buduj napisy za pomocą specyfikatorów formatu.

Formatowanie tekstu za pomocą std.fmt to bezpłatna lekcja Zig Academy na CoddyKit. To lekcja 4 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.

Po co formatowanie

Rzeczywiste programy łączą wartości z tekstem: nazwy, liczby, ceny. Zig obsługuje to za pomocą std.fmt i swojego mini-języka formatowania.

Symbole zastępcze w nawiasach klamrowych

String formatujący używa {} jako symbolu zastępczego. Każda para nawiasów klamrowych pobiera następny argument z krotki przekazanej wraz z formatem.

std.debug.print("x = {}\n", .{42});

Argumenty trafiają do krotki

Przekazujesz argumenty jako anonimową krotkę, zapisaną jako .{ a, b }. Nawet pojedynczy argument znajduje się wewnątrz tej krotki.

std.debug.print("{} {}\n", .{1, 2});

Specyfikator stringa

Wypisz []const u8 jako tekst za pomocą {s}. Samo {} próbowałoby sformatować slice jako strukturę zawierającą wskaźnik i długość.

std.debug.print("{s}\n", .{"hi"});

Podstawy systemu liczbowego

Ustaw podstawę liczby całkowitej za pomocą specyfikatorów takich jak {x} dla systemu szesnastkowego, {b} dla binarnego i {o} dla ósemkowego. To świetne rozwiązanie podczas debugowania niskopoziomowego.

std.debug.print("{x}\n", .{255}); // ff

Szerokość i dopełnianie

Wyrównaj wartość do stałej szerokości, używając dwukropka, jak w {d:5}. Dzięki temu liczby układają się w czytelne kolumny.

std.debug.print("{d:5}\n", .{7});

Precyzja liczb zmiennoprzecinkowych

Ogranicz liczbę miejsc dziesiętnych za pomocą pola precyzji, takiego jak {d:.2}. Wypisuje ono dokładnie dwie cyfry po kropce, zapewniając schludny wynik.

std.debug.print("{d:.2}\n", .{3.14159});

Escapowanie nawiasu klamrowego

Potrzebujesz dosłownej klamry w wyniku? Zapisz ją podwójnie: {{ wypisuje jedną klamrę otwierającą {, a }} wypisuje jedną klamrę zamykającą }. Dzięki temu unikniesz pomylenia z placeholderem.

std.debug.print("{{x}}\n", .{});

Tworzenie napisu

Aby sformatować tekst w pamięci zamiast wypisywać go do stdout, wywołaj std.fmt.allocPrint. Funkcja alokuje pamięć i zwraca nowy []u8 zawierający tekst.

const s = try std.fmt.allocPrint(
    alloc, "id={}", .{id});

Zwalnianie zaalokowanej pamięci

Ponieważ allocPrint używa alokatora, wynik należy do Pana/Pani i trzeba go zwolnić. Umieszczenie defer zaraz po wywołaniu pozwala zachować porządek podczas sprzątania.

defer alloc.free(s);

Stałe bufory z bufPrint

Jeśli w ogóle nie chce Pan/Pani używać sterty, proszę zapisać tekst we własnej tablicy za pomocą std.fmt.bufPrint. Funkcja zwraca wypełniony wycinek, który faktycznie został użyty.

var buf: [16]u8 = undefined;
const out = try std.fmt.bufPrint(&buf, "{}", .{9});

Szybkie sprawdzenie

Wypisuje Pan/Pani wartość []const u8 i chce ją wyświetlić jako czytelny tekst.

Podsumowanie

Sformatował(a) Pan/Pani tekst za pomocą std.fmt: placeholderów {} i {s}, podstawy liczbowej, szerokości i precyzji, a także allocPrint i bufPrint do tworzenia napisów. 🎨

Często zadawane pytania

Czy lekcja „Formatowanie tekstu za pomocą std.fmt” jest bezpłatna?

Tak — pełny tekst „Formatowanie tekstu za pomocą std.fmt” 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 „Formatowanie tekstu za pomocą std.fmt”?

Buduj napisy za pomocą specyfikatorów formatu. Ć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 4 z 4.

Ile czasu zajmuje lekcja „Formatowanie tekstu za pomocą std.fmt”?

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. Napisy to []const u8
  2. Literały napisowe i sekwencje escape
  3. Porównywanie i wyszukiwanie bajtów
  4. Formatowanie tekstu za pomocą std.fmt
← Powrót do Zig Academy