Avatar ·

La bonne façon de retourner une nouvelle chaîne depuis une fonction en Rust

Bonjour ! Je suis débutant en Rust et j'essaie de comprendre comment retourner des chaînes depuis des fonctions. Dans d'autres langages, je créais simplement une chaîne et la retournais, mais en Rust c'est plus compliqué à cause du système de possession. J'ai une fonction qui doit prendre une chaîne, y ajouter un préfixe et retourner une nouvelle chaîne. Voici mon code qui ne fonctionne pas : ```rust fn add_prefix(s: &str) -> &str { let result = String::from("prefix_") + s; &result } ``` Le compilateur donne l'erreur : `cannot return reference to local variable 'result'`. Je comprends que `result` est supprimé après la sortie de la fonction, mais comment retourner correctement une nouvelle chaîne ? J'ai essayé différentes options : 1. Retourner `String` au lieu de `&str` — mais alors dans le code appelant, il faut réemprunter la chaîne. 2. Utiliser `to_string()` — mais cela semble redondant. 3. J'ai essayé de retourner `&'static str` — mais cela ne convient pas pour les chaînes dynamiques. Dites-moi, quelle approche est considérée comme idiomatique en Rust pour retourner de nouvelles chaînes depuis des fonctions ? J'aimerais comprendre.