Cependant, nous pouvons rencontrer des cas où nous devons utiliser et modifier temporairement une valeur. Nous pouvons accomplir cela en utilisant l'emprunt. L'emprunt est un concept qui nous permet d'emprunter une valeur, de l'utiliser et une fois que nous aurons terminé, renvoyez-le à son propriétaire dans le même état que lorsque nous l'avons emprunté. Cela signifie que l'emprunt ne modifie pas la valeur d'origine.
Nous empruntons une valeur en le faisant référence à l'aide de son adresse mémoire et de l'opérateur. Nous pouvons ensuite transmettre la référence à une fonction et utiliser la valeur comme nous le voyons.
Règles de référence
Il y a deux règles pour travailler avec des références en rouille:
Référence de la rouille et valeur d'emprunt
Dans Rust, nous utilisons l'opérateur pour référencer une adresse de valeur. Un exemple de code est comme indiqué ci-dessous:
fn main ()Dans le code ci-dessus, nous définissons une variable appelée «String». Selon les règles de propriété, cette variable possède la valeur «bonjour».
Cependant, nous devons utiliser cette variable dans la fonction. Puisqu'une valeur ne peut avoir qu'un propriétaire à un moment donné, l'utiliser à l'intérieur de la fonction transférera la propriété. Puisque nous ne voulons pas que la propriété soit transférée à la fonction, nous empruntions la valeur en utilisant en faisant référence à son propriétaire.
Notez que nous ajoutons l'opérateur dans le type de paramètre de fonction. Cela indique à Rust que nous faisons référence à la valeur et que nous devrions le rendre après l'achèvement.
Références mutables
Si nous essayons de modifier une valeur empruntée, Rust entraînera une erreur. Prenez l'exemple ci-dessous:
fn main ()L'exécution du code ci-dessus doit renvoyer une erreur comme:
En effet, les références sont immuables par défaut. Par conséquent, nous ne pouvons pas modifier une valeur empruntée.
Nous pouvons avoir une référence mutable qui nous permet de modifier une valeur empruntée. Considérez l'exemple de code ci-dessous:
fn main ()Dans l'exemple ci-dessus, nous définissons la variable «String» t être mutable. Nous créons ensuite une référence mutable en utilisant la chaîne & mut dans l'appel de fonction. Notez que le paramètre de fonction accepte une référence mutable, permettant à la fonction de modifier la valeur empruntée.
Remarque: Comme mentionné, vous ne pouvez avoir qu'une seule référence mutable à un moment particulier. Tenter de créer plus d'une référence mutable mettra une erreur comme indiqué:
fn main ()Le code ci-dessus doit renvoyer une erreur comme indiqué:
Cette fonctionnalité peut aider à prévenir les conditions de course lors de l'emprunt et de la référence.
Conclusion
Cet article fournit une compréhension de base de l'utilisation et du travail avec les fonctionnalités d'emprunt et de référence. Vous pouvez vérifier les documents pour explorer plus loin.