Concatenar cadenas en Rust

Nilesh Katuwal 21 junio 2023
  1. Use la macro concat!() para concatenar cadenas en Rust
  2. Usa el método concat() para concatenar cadenas en Rust
  3. Use cadenas propias y prestadas para concatenar cadenas en Rust
Concatenar cadenas en Rust

Este artículo muestra las formas de concatenar cadenas en Rust.

Use la macro concat!() para concatenar cadenas en Rust

El concat!() se considera una macro en Rust que se usa para concatenar dos cadenas en una cadena estática. Se necesitan múltiples literales separados por comas, y el tipo de expresión para eso es &'static str.

Código de ejemplo:

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

Producción :

batman

Usa el método concat() para concatenar cadenas en Rust

El método concat() de Rust se usa para aplanar una rebanada de tipo T en un solo valor de tipo U. Puedes concatenar cadenas con la función concat() si está en un vector.

El vector se expandirá en un solo valor de cadena utilizando este enfoque.

Código de ejemplo:

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

Producción :

batman

Use cadenas propias y prestadas para concatenar cadenas en Rust

Necesitamos asignar la memoria para almacenar el resultado de la concatenación de la cadena. Si el método que estamos usando es modificar la primera cadena a la cadena concatenada, entonces la primera cadena debe ser cadena propia únicamente.

Pero si las cadenas se concatenan pero no se modifican, entonces las cadenas pueden ser cadenas propias o prestadas o podrían ser una mezcla de ambas cadenas.

Para crear una cadena propia en Rust, necesitamos usar to_owned como en el código de ejemplo a continuación.

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

La cadena prestada se ve así.

let bs: &str = "Home";

El ejemplo de código para la primera cadena se modifica y luego la cadena concatenada es:

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

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

Producción :

Hello World

Aquí podemos mutar la cadena ya que tenemos una cadena propia. Este se considera el método eficiente ya que nos permite reutilizar la asignación de memoria.

Un caso similar está disponible para String y String como &string, que se puede desreferenciar como &str.

Código de ejemplo:

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

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

Producción :

WelcomeHome

El código de ejemplo que se usa a continuación es en el que se toman prestadas ambas cadenas.

Código de ejemplo:

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

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

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

Producción :

WelcomeHome

Artículo relacionado - Rust String