La forma correcta de devolver una nueva cadena de una función en Rust
¡Hola! Soy nuevo en Rust y estoy tratando de entender cómo devolver cadenas desde funciones. En otros lenguajes simplemente creaba una cadena y la devolvía, pero en Rust es más complicado debido al sistema de ownership.
Tengo una función que debe tomar una cadena, agregarle un prefijo y devolver una nueva cadena. Aquí está mi código que no funciona:
```rust
fn add_prefix(s: &str) -> &str {
let result = String::from("prefix_") + s;
&result
}
```
El compilador da un error: `cannot return reference to local variable 'result'`. Entiendo que `result` se elimina después de salir de la función, pero ¿cómo devolver correctamente una nueva cadena?
He probado diferentes opciones:
1. Devolver `String` en lugar de `&str` — pero entonces en el código llamador necesito tomar prestada la cadena de nuevo.
2. Usar `to_string()` — pero parece redundante.
3. Intenté devolver `&'static str` — pero no es adecuado para cadenas dinámicas.
Indíquenme qué enfoque se considera idiomático en Rust para devolver nuevas cadenas desde funciones. Quiero entender.