Możemy jednak napotkać przypadki, w których musimy używać i tymczasowo modyfikować wartość. Możemy to osiągnąć za pomocą pożyczek. Pożyczanie to koncepcja, która pozwala nam pożyczyć wartość, używać jej, a kiedy już skończymy, zwrócić ją do swojego właściciela w tym samym stanie. Oznacza to, że pożyczka nie zmienia pierwotnej wartości.
Pożyczamy wartość, odwołując się do jej za pomocą adresu pamięci i i operatora. Następnie możemy przekazać odniesienie do funkcji i użyć wartości, jak uważamy za dopasowanie.
Zasady odniesienia
Istnieją dwie zasady pracy z odniesieniami w rdzy:
Odniesienie rdzy i wartość pożyczki
W rdzy używamy i operatora do odniesienia adresu wartości. Przykładowy kod jest pokazany poniżej:
fn main ()W powyższym kodzie definiujemy zmienną o nazwie „String”. Zgodnie z zasadami własności ta zmienna jest właścicielem wartości „Hello”.
Musimy jednak użyć tej zmiennej w funkcji. Ponieważ wartość może mieć właściciela tylko w danym momencie, użycie go wewnątrz funkcji przeniesie własność. Ponieważ nie chcemy, aby własność została przeniesiona do funkcji, pożyczamy wartość za pomocą, odwołując się do właściciela.
Zauważ, że dodajemy i operator w typu parametru funkcji. To mówi Rust, że odwołujemy się do wartości i powinniśmy ją oddać po zakończeniu.
Zmienione odniesienia
Jeśli spróbujemy zmienić pożyczoną wartość, Rust spowoduje błąd. Weź poniższy przykład:
fn main ()Uruchomienie powyższego kodu powinno zwrócić błąd jako:
Dzieje się tak, ponieważ odniesienia są domyślnie niezmienne. Stąd nie możemy zmodyfikować pożyczonej wartości.
Możemy mieć zmienne odniesienie, które pozwala nam zmodyfikować pożyczoną wartość. Rozważ przykładowy kod poniżej:
fn main ()W powyższym przykładzie ustawiamy zmienną „String” T być zmienna. Następnie tworzymy zmienne odniesienie za pomocą ciągu & mut w wywołaniu funkcji. Zauważ, że parametr funkcji akceptuje zmienne odniesienie, umożliwiając funkcję zmianę pożyczonej wartości.
Uwaga: Jak wspomniano, możesz mieć tylko jedno zmienne odniesienie w określonym czasie. Próba utworzenia więcej niż jednego zmiennego odniesienia wywoła błąd, jak pokazano:
fn main ()Kod powyżej powinien zwrócić błąd, jak pokazano:
Ta funkcja może pomóc w zapobieganiu warunkom wyścigu przy wartościach pożyczania i odwołania.
Wniosek
Ten artykuł zawiera podstawowe zrozumienie używania i pracy z funkcjami pożyczania rdzy i odniesienia. Możesz sprawdzić dokumenty, aby dalej odkrywać.