Avatar ·

¿Cómo trabajar con cadenas en Rust?

¿Cómo trabajar correctamente con cadenas en Rust? Problemas de ownership y conversiones

¡Hola a todos! Soy nuevo en Rust y me he encontrado con dificultades al trabajar con cadenas. En otros lenguajes (Python, Java), las cadenas suelen comportarse de manera intuitiva: se pueden concatenar, modificar, pasar a funciones sin complicaciones adicionales. En Rust, sin embargo, me topo constantemente con errores de compilación relacionados con ownership, borrowing y los tipos String vs &str.

Problema concreto: Necesito leer un nombre de usuario desde stdin, luego agregarle un saludo y mostrar el resultado. Probé el siguiente código:

use std::io;

fn main() {
    let mut name = String::new();
    io::stdin().read_line(&mut name).expect("Failed to read line");
    let greeting = "Hello, " + name; // ¡Error!
    println!("{}", greeting);
}

El compilador muestra el error: cannot add `String` to `&str`. Entiendo que