Strings in Rust verketten

Nilesh Katuwal 21 Juni 2023
  1. Verwenden Sie das Makro concat!(), um Strings in Rust zu verketten
  2. Verwenden Sie die concat()-Methode, um Strings in Rust zu verketten
  3. Verwenden Sie eigene und geliehene Zeichenfolgen, um Zeichenfolgen in Rust zu verketten
Strings in Rust verketten

Dieser Artikel zeigt die Möglichkeiten, Strings in Rust zu verketten.

Verwenden Sie das Makro concat!(), um Strings in Rust zu verketten

Das concat!() wird in Rust als Makro betrachtet, das verwendet wird, um zwei Strings zu einem statischen String zu verketten. Es werden mehrere durch Kommas getrennte Literale benötigt, und der Ausdruckstyp dafür ist &'static str.

Beispielcode:

fn main() {
    println!("{}", concat!("bat", "man"))
}

Ausgang:

batman

Verwenden Sie die concat()-Methode, um Strings in Rust zu verketten

Die Methode concat() von Rust wird verwendet, um einen Slice vom Typ T in einen einzelnen Wert vom Typ U zu reduzieren. Sie können Strings mit der Funktion concat() verketten, wenn es sich um einen Vektor handelt.

Der Vektor wird mit diesem Ansatz zu einem einzelnen Zeichenfolgenwert erweitert.

Beispielcode:

fn main() {
    let v = vec!["bat", "man"];
    let s: String = v.concat();
    println!("{}", s);
}

Ausgang:

batman

Verwenden Sie eigene und geliehene Zeichenfolgen, um Zeichenfolgen in Rust zu verketten

Wir müssen den Speicher zuweisen, um das Ergebnis für die Verkettung der Zeichenfolge zu speichern. Wenn die von uns verwendete Methode darin besteht, die erste Zeichenfolge in die verkettete Zeichenfolge zu ändern, muss die erste Zeichenfolge nur eine eigene Zeichenfolge sein.

Wenn die Zeichenfolgen jedoch verkettet, aber nicht modifiziert werden, können die Zeichenfolgen entweder eigene Zeichenfolgen oder geliehene Zeichenfolgen sein oder eine Mischung aus beiden Zeichenfolgen sein.

Um einen eigenen String in Rust zu erstellen, müssen wir to_owned wie im Beispielcode unten verwenden.

let os: String = "Welcome".to_owned();

Die geliehene Zeichenfolge sieht so aus.

let bs: &str = "Home";

Das Codebeispiel für die erste Zeichenfolge wird geändert und die verkettete Zeichenfolge lautet dann:

fn main() {
    let mut os: String = "Hello ".to_owned();
    let bs: &str = "World";

    os.push_str(bs);
    println!("{}", os);
}

Ausgang:

Hello World

Hier können wir den String mutieren, da wir einen eigenen String haben. Dies wird als effiziente Methode angesehen, da es uns ermöglicht, die Speicherzuweisung wiederzuverwenden.

Ein ähnlicher Fall gibt es für String und String wie &string, der als &str dereferenziert werden kann.

Beispielcode:

fn main() {
    let mut os: String = "Welcome".to_owned();
    let second_os: String = "Home".to_owned();

    os.push_str(&second_os);
    println!("{}", os);
}

Ausgang:

WelcomeHome

Der unten verwendete Beispielcode ist derjenige, bei dem beide Zeichenfolgen ausgeliehen werden.

Beispielcode:

fn main() {
    let bs1: &str = "Welcome";
    let bs2: &str = "Home";

    let together = format!("{}{}", bs1, bs2);

    println!("{}", together);
}

Ausgang:

WelcomeHome

Verwandter Artikel - Rust String