Naučite kako formatirati podatke niza za savršenu prezentaciju.

Oblikovanje niza ključan je aspekt programiranja jer vam omogućuje manipuliranje i prikaz podataka na čitljiv, strukturiran način. Možete kontrolirati prezentaciju podataka formatiranjem nizova za bolje korisničko iskustvo.

Rust pruža moćan i fleksibilan mehanizam za oblikovanje niza koji vam omogućuje stvaranje jasnog i sažetog izlaza, uključujući numeričke, datumske, vremenske i funkcije rukovanja pogreškama.

Osnovno oblikovanje niza u Rustu

Rust pruža funkcionalnost za formatiranje nizova s ​​drugim Rust ugrađene vrste.

Možete koristiti format! makro za osnovno oblikovanje niza u Rustu. The format! makro pruža sažet i moćan način za konstruiranje formatiranih nizova s ​​rezerviranim mjestima u vitičastim zagradama.

fnglavni() {
neka ime = "Alice";
neka dob = 25;
neka poruka = format!("Zovem se {} i imam {} godina.", ime, dob);
println!("{}", poruka);
}

The Ime varijabla sadrži niz, a dob varijabla sadrži cijeli broj. The poruka varijabla ima formatirani niz koji koristi

format! za zamjenu rezerviranih mjesta odgovarajućim vrijednostima, što rezultira nizom formata koji sadrži Ime i dob.

The format! Makro podržava razne specifikatore formata koji vam omogućuju kontrolu izlaza.

Evo kako odrediti broj decimalnih mjesta za brojeve s pomičnim zarezom, definirati širinu polja i poravnati izlaz.

fnglavni() {
neka pi = 3.14159;
neka formatirani_pi = format!("Vrijednost pi je približno {:.2}", pi);
println!("{}", formatirani_pi); // ispisuje 3.14
}

The pi varijabla sadrži vrijednost s pomičnim zarezom; s specifikatorom formata :.2, možete uputiti format! makro za prikaz pi sa dvije decimale.

The format! macro je jedna od mnogih metoda formatiranja niza s Rustom. Ovisno o vašim zahtjevima, razmislite o korištenju println! ili pisati! makro za formatirani izlaz na konzolu ili druge izlazne tokove.

Oblikovanje numeričkih vrijednosti

Rust također pruža funkcionalnost za formatiranje raznih numeričkih vrijednosti, od cijelih brojeva do pomičnih brojeva i drugih numeričkih tipova.

Općenito, specifikatori formata temelj su oblikovanja niza u Rustu i trebat će vam pravi specifikator ovisno o numeričkoj vrijednosti koju želite formatirati.

Ovdje su neki od specifikatora formata koje Rust nudi za numeričke vrijednosti:

Numerička vrsta

Formater

Funkcionalnost

Cijeli brojevi

%d ili %i

Formatira cijele brojeve uključujući pozitivne i negativne vrijednosti.

Brojevi s pomičnim zarezom

%f

Prikladno za formatiranje brojeva s pomičnim zarezom, uključujući integralne i frakcijske dijelove.

Eksponencijalni zapis

%e ili %E

Formatira brojeve u znanstvenom zapisu (eksponencijalni oblik).

Oktalni prikaz

%o

Formatira cijele brojeve u oktalnom prikazu (baza 8).

Heksadecimalni prikaz

%x ili %X

Formatira cijele brojeve u heksadecimalnom prikazu (baza 16).

Osim toga, možete odrediti ispunu i poravnanje za numeričke vrijednosti. Ispuna dodaje razmake ili nule formatiranoj numeričkoj vrijednosti kako bi se postigla željena širina. Ispuna pomaže u usklađivanju vrijednosti za prezentaciju u tabelarnom obliku ili drugim vizualno organiziranim izgledima. Prije vrijednosti širine možete navesti znak za ispunu, razmak ili nulu.

Za lijevo poravnanje vrijednosti koristite - zastava. Za desno poravnanje vrijednosti, izostavite oznaku ili upotrijebite oznaku '0' za ispunu nule.

fnglavni() {
broj = 42
formatirani_broj = "%10d" % broj
ispis (formatirani_broj)
}

Vrijednost je desno poravnata unutar širine od 10 znakova, što rezultira s osam vodećih razmaka ispred broja.

Prilagođeno oblikovanje niza u Rustu

Prilagođeno oblikovanje niza važno je za zahtjevnije operacije. Možete stvoriti prilagođene implementacije oblikovanja za svoje tipove s ugrađenim Rustom std:: fmt modul.

The std:: fmt modul pruža značajke za formatiranje izlaza sa širokim rasponom opcija za prilagodbu izgleda podataka tijekom procesa konverzije niza. The std:: fmt modul pruža a Prikaz i Debug osobina koja je zgodna za operacije formatiranja niza.

Prikazna osobina

The Prikaz značajka pomaže proizvesti ljudima čitljiv izlaz definirajući kako bi objekt trebao biti oblikovan s {} rezervirano mjesto u nizu. Možete implementirati Prikaz osobina za tvoju prilagođene vrste definiranjem metode tzv fmt koji uzima formater kao argument.

Formater nudi različite metode za kontrolu izlaza formata, poput write_str i write_fmt metode.

koristiti std:: fmt;

// Definirajte strukturu pod nazivom `Point`
strukturiratiTočka {
x: i32,
y: i32,
}

// Implementiraj značajku `Prikaz` za `Točku`
impl fmt:: Prikaz za Točka {
fnfmt(&sebe, f: &mut fmt:: Formater<'_>) -> fmt::Proizlaziti {
// Formatirajte strukturu `Point` kao "(x, y)"
pisati!(f, "({}, {})", sebe.x, sebe.y)
}
}

fnglavni() {
// Stvorite novu instancu `Point`
neka točka = točka { x: 5, y: 10 };

// Ispis strukture `Point` koristeći oblikovanje `Prikaz`
println!("Poanta je: {}", točka);
}

The Točka struct implementira Prikaz osobina. Unutar fmt metoda, pisati! makro formate i zapišite željeni izlaz u formater pomoću {} rezerviranog mjesta.

Osobina otklanjanja pogrešaka

The Debug osobina je slična Prikaz osobina, osim što se fokusira na proizvodnju izlaza prikladnog za otklanjanje pogrešaka i rukovanje greškama svrhe. The Debug osobina se uglavnom koristi s {:?} rezerviranog mjesta.

Provedba Debug značajka na vašim prilagođenim tipovima je jednostavna. The Debug značajka pruža zadanu implementaciju na temelju Prikaz osobina. Međutim, možete nadjačati zadano ponašanje kako biste pružili specijalizirani prikaz otklanjanja pogrešaka.

koristiti std:: fmt;

// Definirajte strukturu pod nazivom `Osoba`
#[derive (debug)]
strukturiratiOsoba {
Ime: Niz,
dob: u32,
}

// Implementiraj značajku `Prikaz` za `Osobu`
impl fmt:: Prikaz za osoba {
fnfmt(&sebe, f: &mut fmt:: Formater) -> fmt::Proizlaziti {
// Formatirajte strukturu `Osoba` kao niz koji mogu čitati ljudi
pisati!(f, "Ime: {}, dob: {}", sebe.Ime, sebe.dob)
}
}

fnglavni() {
// Stvorite novu instancu `Osobe`
neka osoba = osoba {
Ime: Niz::iz("Alice"),
dob: 30,
};

// Ispis strukture `Osoba` koristeći oblikovanje `Prikaz`
println!("Prikaz: {}", osoba);

// Ispis strukture `Osoba` koristeći oblikovanje `Debug`
println!("Debug: {:?}", osoba);
}

Program izvodi Debug osobina za Osoba strukturirati sa #[derive (debug)]. Ovo automatski generira implementaciju na temelju polja strukture.

Makro println ispisuje prikaz otklanjanja pogrešaka s Debug rezervirano mjesto za oblikovanje za oblikovanje izlaza pomoću Debug implementacija.

Rust ima sustav tipa bogat značajkama

Rustov sustav bogatih tipova igra ključnu ulogu u formatiranju niza. Iskorištavanjem Rustova statičkog tipkanja i snažnih biblioteka za formatiranje, možete pisati siguran, učinkovit kod dok se bavite zadacima manipulacije nizovima i formatiranja.

Sustav tipova osigurava sigurnost tijekom kompajliranja i sprječava uobičajene pogreške, od neusklađenosti tipa do problema s specifikacijama formata. Uz kombinaciju Rustovog sustava tipova i njegovih opsežnih mogućnosti oblikovanja, možete samouvjereno se uhvatiti u koštac s izazovima formatiranja niza i iskoristiti performanse i sigurnost jezika jamstva.