Avatar ·

A maneira correta de retornar uma nova string de uma função em Rust

Olá! Sou novo em Rust e estou tentando entender como retornar strings de funções. Em outras linguagens, eu simplesmente criava uma string e a retornava, mas em Rust é mais complicado por causa do sistema de ownership. Tenho uma função que deve receber uma string, adicionar um prefixo a ela e retornar uma nova string. Aqui está meu código, que não funciona: ```rust fn add_prefix(s: &str) -> &str { let result = String::from("prefix_") + s; &result } ``` O compilador dá o erro: `cannot return reference to local variable 'result'`. Entendo que `result` é deletado após sair da função, mas como então retornar corretamente uma nova string? Tentei diferentes abordagens: 1. Retornar `String` em vez de `&str` — mas então no código chamador preciso pegar emprestado a string novamente. 2. Usar `to_string()` — mas parece redundante. 3. Tentei retornar `&'static str` — mas isso não funciona para strings dinâmicas. Diga-me, qual abordagem é considerada idiomática em Rust para retornar novas strings de funções? Quero entender.