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}); // ffSzerokość 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
- Napisy to []const u8
- Literały napisowe i sekwencje escape
- Porównywanie i wyszukiwanie bajtów
- Formatowanie tekstu za pomocą std.fmt