Kako formatiranje nizova radi u Rustu

Kako formatiranje nizova radi u Rustu
Čitatelji poput vas podržavaju MUO. Kada kupite putem poveznica na našoj stranici, možemo zaraditi partnersku proviziju. Čitaj više.

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.





MAKEUSEOF VIDEO DANA POMICI SE ZA NASTAVAK SA SADRŽAJEM

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.

 fn main() { 
    let name = "Alice";
    let age = 25;
    let message = format!("My name is {} and I am {} years old.", name, age);
    println!("{}", message);
}

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 .



  rezultat osnovnog oblikovanja niza

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.





 fn main() { 
    let pi = 3.14159;
    let formatted_pi = format!("The value of pi is approximately {:.2}", pi);
    println!("{}", formatted_pi); // prints 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.

dvaput kliknite mišem na jedan klik

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:

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.

 fn main() { 
    number = 42
    formatted_number = "%10d" % number
    print(formatted_number)
}

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.

 use std::fmt; 

// Define a struct named `Point`
struct Point {
    x: i32,
    y: i32,
}

// Implement the `Display` trait for `Point`
impl fmt::Display for Point {
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        // Format the `Point` struct as "(x, y)"
        write!(f, "({}, {})", self.x, self.y)
    }
}

fn main() {
    // Create a new `Point` instance
    let point = Point { x: 5, y: 10 };

    // Print the `Point` struct using the `Display` formatting
    println!("The point is: {}", point);
}

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

kako ispisati s chromebooka putem USB -a
  rezultat prilagođenog oblikovanja niza

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.

 use std::fmt; 

// Define a struct named `Person`
#[derive(Debug)]
struct Person {
    name: String,
    age: u32,
}

// Implement the `Display` trait for `Person`
impl fmt::Display for Person {
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        // Format the `Person` struct as a human-readable string
        write!(f, "Name: {}, Age: {}", self.name, self.age)
    }
}

fn main() {
    // Create a new `Person` instance
    let person = Person {
        name: String::from("Alice"),
        age: 30,
    };

    // Print the `Person` struct using the `Display` formatting
    println!("Display: {}", person);

    // Print the `Person` struct using the `Debug` formatting
    println!("Debug: {:?}", person);
}

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 se pouzdano uhvatiti u koštac s izazovima formatiranja nizova i iskoristiti performanse jezika i garancije sigurnosti.