Come funziona la formattazione delle stringhe in Rust

Come funziona la formattazione delle stringhe in Rust
I lettori come te aiutano a sostenere MUO. Quando effettui un acquisto utilizzando i link sul nostro sito, potremmo guadagnare una commissione di affiliazione. Per saperne di più.

La formattazione delle stringhe è un aspetto cruciale della programmazione poiché consente di manipolare e visualizzare i dati in modo leggibile e strutturato. Puoi controllare la presentazione dei dati formattando le stringhe per una migliore esperienza utente.





Rust fornisce un meccanismo potente e flessibile per la formattazione delle stringhe che ti consente di creare un output chiaro e conciso, incluse funzionalità numeriche, di data, ora e gestione degli errori.





MAKEUSEOF VIDEO DEL GIORNO SCORRI PER CONTINUARE CON I CONTENUTI

Formattazione di base delle stringhe in Rust

Rust fornisce funzionalità per la formattazione di stringhe con altri Tipi incorporati ruggine .





Puoi usare il formato! macro per la formattazione di base delle stringhe in Rust. IL formato! macro fornisce un modo conciso e potente per costruire stringhe formattate con segnaposti racchiusi tra parentesi graffe.

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

IL nome la variabile contiene una stringa e la età la variabile contiene un numero intero. IL Messaggio variabile ha una stringa formattata che utilizza formato! per sostituire i segnaposto con i valori corrispondenti, risultando in una stringa di formato contenente il nome E età .



  risultato della formattazione di base della stringa

IL formato! macro supporta vari identificatori di formato che consentono di controllare l'output.

come trasferire musica dal vecchio iPod al computer

Ecco come specificare il numero di cifre decimali per i numeri in virgola mobile, definire la larghezza dei campi e allineare l'output.





 fn main() { 
    let pi = 3.14159;
    let formatted_pi = format!("The value of pi is approximately {:.2}", pi);
    println!("{}", formatted_pi); // prints 3.14
}

IL pi la variabile contiene un valore in virgola mobile; con l'identificatore di formato :.2 , puoi istruire il formato! macro da visualizzare pi con due cifre decimali.

IL formato! macro è uno dei molti metodi di formattazione delle stringhe con Rust. A seconda delle tue esigenze, considera l'utilizzo di stampa! O scrivere! macro per l'output formattato alla console o altri flussi di output.





Formattazione di valori numerici

Rust fornisce anche funzionalità per la formattazione di vari valori numerici, da interi a float e altri tipi numerici.

Generalmente, gli identificatori di formato sono la base della formattazione delle stringhe in Rust, e avrai bisogno dell'identificatore giusto a seconda del valore numerico che vuoi formattare.

Ecco alcuni degli identificatori di formato forniti da Rust per i valori numerici:

come scaricare disney plus su vizio smart tv

Interi

%d o %i

Formatta i numeri interi inclusi i valori positivi e negativi.

Numeri in virgola mobile

%F

Adatto per la formattazione di numeri in virgola mobile, comprese le parti integrali e frazionarie.

Notazione esponenziale

%e o %E

Formatta i numeri in notazione scientifica (forma esponenziale).

Rappresentazione ottale

%O

Formatta i numeri interi in rappresentazione ottale (base 8).

Rappresentazione esadecimale

%x o %X

Formatta i numeri interi in rappresentazione esadecimale (base 16).

Inoltre, puoi specificare la spaziatura interna e l'allineamento per i valori numerici. Il riempimento aggiunge spazi o zeri a un valore numerico formattato per ottenere la larghezza desiderata. La spaziatura interna aiuta ad allineare i valori per la presentazione in formato tabulare o altri layout organizzati visivamente. Prima del valore della larghezza, puoi specificare il carattere di riempimento, uno spazio o zero.

Per allineare a sinistra un valore, utilizzare il - bandiera. Per allineare a destra un valore, ometti il ​​flag o usa il flag '0' per il riempimento zero.

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

Il valore è allineato a destra entro una larghezza di 10 caratteri, risultando in otto spazi iniziali prima del numero.

Formattazione personalizzata delle stringhe in Rust

La formattazione personalizzata delle stringhe è importante per le operazioni più impegnative. Puoi creare implementazioni di formattazione personalizzate per i tuoi tipi con il built-in di Rust std::fmt modulo.

IL std::fmt Il modulo fornisce tratti per la formattazione dell'output con un'ampia gamma di opzioni per personalizzare l'aspetto dei dati durante il processo di conversione delle stringhe. IL std::fmt modulo fornisce a Schermo E Debug tratto utile per le operazioni di formattazione delle stringhe.

Il tratto di visualizzazione

IL Schermo trait aiuta a produrre un output leggibile dall'uomo definendo come un oggetto dovrebbe essere formattato con il {} segnaposto in una stringa. Puoi implementare il Schermo tratto per il tuo tipi personalizzati definendo un metodo chiamato fmt che accetta un formattatore come argomento.

Il formattatore fornisce vari metodi per controllare l'output del formato, come il formato write_str E write_fmt metodi.

come avere internet senza wifi
 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);
}

IL Punto struct implementa il Schermo tratto. Dentro il fmt metodo, il scrivere! formati macro e scrivere l'output desiderato nel formattatore con l'estensione {} segnaposto.

  risultato della formattazione personalizzata della stringa

Il tratto di debug

IL Debug tratto è simile al Schermo tratto, tranne che si concentra sulla produzione di output adatto per il debug e gestione degli errori scopi. IL Debug tratto è utilizzato principalmente con il {:?} segnaposto.

Implementazione del Debug tratto sui tuoi tipi personalizzati è semplice. IL Debug trait fornisce un'implementazione predefinita basata su Schermo tratto. Tuttavia, puoi ignorare il comportamento predefinito per fornire una rappresentazione di debug specializzata.

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

Il programma deriva il file Debug tratto per il Persona struct con #[deriva(Debug)] . Questo genera automaticamente l'implementazione in base ai campi struct.

La macro println stampa la rappresentazione di debug con l'estensione Debug segnaposto di formattazione per la formattazione dell'output utilizzando il formato Debug implementazione.

Rust ha un sistema di tipi ricco di funzionalità

Il ricco sistema di caratteri di Rust gioca un ruolo cruciale nella formattazione delle stringhe. Sfruttando la tipizzazione statica e le potenti librerie di formattazione di Rust, puoi scrivere codice sicuro ed efficiente mentre gestisci le attività di formattazione e manipolazione delle stringhe.

Il sistema di tipi garantisce la sicurezza in fase di compilazione e previene gli errori comuni, dalle mancate corrispondenze di tipo ai problemi degli identificatori di formato. Con la combinazione del sistema di caratteri di Rust e le sue estese capacità di formattazione, puoi affrontare con sicurezza le sfide di formattazione delle stringhe e beneficiare delle prestazioni e delle garanzie di sicurezza del linguaggio.