Kuinka merkkijonojen muotoilu toimii Rustissa

Kuinka merkkijonojen muotoilu toimii Rustissa
Kaltaisesi lukijat auttavat tukemaan MUO:ta. Kun teet ostoksen käyttämällä sivustollamme olevia linkkejä, voimme ansaita kumppanipalkkion. Lue lisää.

Merkkijonomuotoilu on keskeinen osa ohjelmointia, koska sen avulla voit käsitellä ja näyttää tietoja luettavalla, jäsennellyllä tavalla. Voit hallita tietojen esitystapaa muotoilemalla merkkijonoja paremman käyttökokemuksen saavuttamiseksi.





Rust tarjoaa tehokkaan ja joustavan mekanismin merkkijonojen muotoiluun, jonka avulla voit luoda selkeän ja tiiviin tulosteen, mukaan lukien numeeriset, päivämäärä-, aika- ja virheenkäsittelytoiminnot.





PÄIVÄN VIDEON TEKEMINEN JATKA SISÄLLÖLLÄ VIERÄTÄ

Perusmerkkijonojen muotoilu ruosteessa

Rust tarjoaa toiminnot merkkijonojen muotoiluun muiden kanssa Ruoste sisäänrakennetut tyypit .





Voit käyttää muoto! makro perusmerkkijonojen muotoiluun Rustissa. The muoto! makro tarjoaa tiiviin ja tehokkaan tavan muodostaa muotoiltuja merkkijonoja, joissa paikkamerkit on suljettu aaltosulkeisiin.

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

The nimi muuttuja sisältää merkkijonon ja ikä muuttuja sisältää kokonaisluvun. The viesti muuttujalla on muotoiltu merkkijono, joka käyttää muoto! korvata paikkamerkit vastaavilla arvoilla, jolloin tuloksena on muotomerkkijono, joka sisältää nimi ja ikä .



  merkkijonon perusmuotoilun tulos

The muoto! makro tukee erilaisia ​​muotomäärityksiä, joiden avulla voit hallita tulostusta.

Näin voit määrittää liukulukujen desimaalien määrän, määrittää kenttien leveyden ja kohdistaa tulosteen.





 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 muuttuja sisältää liukulukuarvon; muotomääritteen kanssa :.2 , voit opastaa muoto! makro näytettäväksi pi kahdella desimaalilla.

The muoto! makro on yksi monista menetelmistä merkkijonojen muotoiluun Rustilla. Harkitse vaatimuksistasi riippuen println! tai kirjoittaa! makro formatoidulle ulostulolle konsoliin tai muihin tulostusvirtoihin.





Numeeristen arvojen muotoilu

Rust tarjoaa myös toimintoja erilaisten numeeristen arvojen muotoiluun kokonaisluvuista floateihin ja muihin numeerisiin tyyppeihin.

Yleensä muotomääritykset ovat ruosteen merkkijonomuotoilun perusta, ja tarvitset oikean määritteen sen mukaan, minkä numeerisen arvon haluat muotoilla.

Tässä on joitain muotomäärityksiä, jotka Rust tarjoaa numeerisille arvoille:

kuinka siirtää ohjelmia asemasta toiseen

Kokonaisluvut

%d tai %i

Muotoilee kokonaisluvut, mukaan lukien positiiviset ja negatiiviset arvot.

Liukulukuluvut

%f

Soveltuu liukulukujen, mukaan lukien integraali- ja murto-osien, muotoiluun.

Eksponentiaalinen merkintä

%e tai %E

Muotoilee numerot tieteellisessä muodossa (eksponentiaalinen muoto).

Oktaaliesitys

%O

Muotoilee kokonaisluvut oktaalimuodossa (kanta 8).

Heksadesimaaliesitys

%x tai %X

Muotoilee kokonaisluvut heksadesimaalimuodossa (kanta 16).

Lisäksi voit määrittää numeeristen arvojen täytön ja tasauksen. Täyte lisää välilyöntejä tai nollia muotoiltuun numeeriseen arvoon halutun leveyden saavuttamiseksi. Täyte auttaa tasaamaan arvoja esitystä varten taulukkomuodossa tai muissa visuaalisesti järjestetyissä asetteluissa. Ennen leveyden arvoa voit määrittää täytemerkin, joko välilyönnin tai nollan.

Tasaa arvo vasemmalle käyttämällä - lippu. Tasaa arvo oikealle jättämällä lippu pois tai käyttämällä 0-lippua nollatäytteeksi.

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

Arvo tasataan oikealle 10 merkin leveydellä, jolloin numeron edessä on kahdeksan välilyöntiä.

Mukautettu merkkijonomuotoilu ruosteessa

Mukautettu merkkijonomuotoilu on tärkeä vaativammissa toiminnoissa. Voit luoda mukautettuja muotoilutoteutuksia tyypeillesi sisäänrakennetun Rustin avulla std::fmt moduuli.

The std::fmt moduuli tarjoaa ominaisuuksia muotoiluun tulosteen laajan valikoiman vaihtoehtoja tietojen ulkoasun mukauttamiseen merkkijonon muunnosprosessin aikana. The std::fmt moduuli tarjoaa a Näyttö ja Debug ominaisuus, joka on kätevä merkkijonomuotoiluoperaatioissa.

Näytön ominaisuus

The Näyttö ominaisuus auttaa tuottamaan ihmisen luettavissa olevan tulosteen määrittelemällä kuinka objekti tulee muotoilla {} paikkamerkki merkkijonossa. Voit toteuttaa Näyttö ominaisuus sinulle mukautettuja tyyppejä määrittelemällä menetelmän nimeltä fmt joka ottaa muotoilijan argumenttina.

Muotoilija tarjoaa erilaisia ​​menetelmiä muototulosteen ohjaamiseen, kuten write_str ja write_fmt menetelmiä.

 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 Kohta struct toteuttaa Näyttö piirre. Sisällä fmt menetelmä, kirjoittaa! makromuodot ja kirjoita haluttu tulos formatteriin -painikkeella {} paikanpitäjä.

  mukautetun merkkijonomuotoilun tulos

Debug-ominaisuus

The Debug ominaisuus on samanlainen kuin Näyttö ominaisuus, paitsi että se keskittyy tuottamaan tulosteita, jotka sopivat virheenkorjaukseen ja virheiden käsittely tarkoituksiin. The Debug ominaisuutta käytetään pääasiassa {:?} paikanpitäjä.

Toteuttamalla Debug ominaisuus mukautetuissa tyypeissäsi on suoraviivainen. The Debug ominaisuus tarjoaa oletustoteutuksen, joka perustuu Näyttö piirre. Voit kuitenkin ohittaa oletuskäyttäytymisen tarjotaksesi erikoistuneen virheenkorjausesityksen.

 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);
}

Ohjelma johtaa Debug ominaisuus varten Henkilö rakenna kanssa #[derive(debug)] . Tämä luo toteutuksen automaattisesti struct-kenttien perusteella.

println-makro tulostaa virheenkorjausesityksen kanssa Debug muotoilun paikkamerkki tulosteen muotoilua varten Debug toteutus.

Rustissa on monipuolinen tyyppijärjestelmä

Rustin rikkaalla tyyppijärjestelmällä on ratkaiseva rooli merkkijonojen muotoilussa. Hyödyntämällä Rustin staattista kirjoittamista ja tehokkaita muotoilukirjastoja, voit kirjoittaa turvallista ja tehokasta koodia samalla kun käsittelet merkkijonojen käsittely- ja muotoilutehtäviä.

Tyyppijärjestelmä varmistaa käännösajan turvallisuuden ja estää yleiset virheet tyyppieroista muodon määrittämisongelmiin. Rust-tyyppisen järjestelmän ja sen laajojen muotoiluominaisuuksien yhdistelmällä voit itsevarmasti käsitellä merkkijonomuotoilun haasteita ja hyötyä kielen suorituskyky- ja turvallisuustakuista.