Concatenazione di stringhe

Rust:
Concatenazione di stringhe

Come fare:

Ecco alcune vie per concatenare stringhe in Rust:

fn main() {
    // Utilizzando l'operatore `+`
    let saluto = "Ciao".to_string();
    let mondo = "mondo!";
    let frase = saluto + " " + mondo;
    println!("{}", frase); // Output: Ciao mondo!
    
    // Utilizzando il macro `format!`
    let nome = "Alice";
    let saluto_personalizzato = format!("Ciao, {}!", nome);
    println!("{}", saluto_personalizzato); // Output: Ciao, Alice!
    
    // Utilizzando `push_str` su una String
    let mut messaggio = "Buongiorno".to_string();
    messaggio.push_str(", Italia!");
    println!("{}", messaggio); // Output: Buongiorno, Italia!
    
    // Concatenazione di più stringhe con `join`
    let parole = vec!["Rust", "è", "fantastico"];
    let frase = parole.join(" ");
    println!("{}", frase); // Output: Rust è fantastico
}

Approfondimento

Concatenare stringhe non è sempre stato così semplice. In linguaggi più vecchi, spesso ci si doveva preoccupare della gestione della memoria e dell’allocazione. Rust gestisce automaticamente la memoria e garantisce la sicurezza nei tipi durante la concatenazione, prevenendo molti errori comuni.

In alternativa all’uso dei metodi sopra, si potrebbe lavorare con stringhe “pigre” come Cow (Copy-on-Write) per evitare alcune allocazioni quando possibile. Rust usa String per stringhe modificabili e &str per stringhe con dati prestabiliti o non modificabili.

Nella concatenazione c’è una sottigliezza: + prende il possesso della prima stringa e la appende alla seconda. Questo significa che non puoi più usare la prima stringa dopo la concatenazione. Inoltre, solo il lato destro di + può essere una referenza; il metodo format! è più flessibile, ma può essere meno efficiente a causa delle allocazioni di memoria extra che potrebbero avvenire.

Vedi anche